我正在使用SQL Server 2008 R2。
我有一个表,其中我有一个非空约束的列。
现在,如果我想检查列是否为特定列定义了空约束,该怎么办?
有任何查询可以找到它吗?
提前致谢..
答案 0 :(得分:8)
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
此查询将显示所有表中的所有列以及有关它们的大量信息。您想要的列是:IS_NULLABLE
,其值可以为“是”或“否”
答案 1 :(得分:5)
像
这样的东西SELECT o.name AS tab, c.name AS col, c.is_nullable
FROM sys.objects o
INNER JOIN sys.columns c ON c.object_id = o.object_id
WHERE o.name like '%yourtable%' and type = 'U'
答案 2 :(得分:2)
有一个表sys.all_columns 此表中的一列名为is_nullable
http://technet.microsoft.com/en-us/library/ms177522(v=sql.105).aspx
select s.name, c.name, c.is_nullable from sys.tables s, sys.all_columns c
where s.object_id = c.object_id
and s.type = 'U' -- USER_TABLE
and c.is_nullable = 1
答案 3 :(得分:2)
您可以使用一些目录视图:
// information about check constraints
select * from sys.check_constraints
// information about specific columns
select name, is_nullable from sys.columns
// information about tables
select * from sys.tables
sys.columns is_nullable
字段包含有关可为空性的信息。
答案 4 :(得分:0)
这是一个简单的命令,将列出 - 字段,类型,空,键,默认
SHOW FIELDS FROM Your_Table_Name;