如何检查列是否没有空约束?

时间:2013-11-18 09:30:26

标签: sql sql-server-2008 sql-server-2008-r2

我正在使用SQL Server 2008 R2。

我有一个表,其中我有一个非空约束的列。

现在,如果我想检查列是否为特定列定义了空约束,该怎么办?

有任何查询可以找到它吗?

提前致谢..

5 个答案:

答案 0 :(得分:8)

SELECT  *
FROM    INFORMATION_SCHEMA.COLUMNS

此查询将显示所有表中的所有列以及有关它们的大量信息。您想要的列是:IS_NULLABLE,其值可以为“是”或“否”

COLUMNS (Transact-SQL)

答案 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'

请参阅sys.columnssys.objects

答案 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;