查询以检查列是否可为空

时间:2011-03-05 15:21:50

标签: sql-server sql-server-2008 nullable

查询以检查列是否可为空(列中是否允许空值)。 它最好返回yes / no或1/0或true / false。

3 个答案:

答案 0 :(得分:68)

您可以从sys.columns

中检索该内容
select  is_nullable 
from    sys.columns 
where   object_id = object_id('Schema.TheTable') 
        and name = 'TheColumn'

答案 1 :(得分:60)

您还可以使用COLUMNPROPERTYOBJECT_ID元数据功能:

SELECT COLUMNPROPERTY(OBJECT_ID('SchemaName.TableName', 'U'), 'ColumnName', 'AllowsNull');

答案 2 :(得分:6)

您还可以检查表格中的所有列是否可以使用' nullable'您想要的属性或任何其他属性,例如我们需要查询名为Bank.Table的表

column namedata typeCharacter Max Lengthis nullable

像这个例子一样使用SQL Information_Schema:

SELECT 
COL.COLUMN_NAME, 
COL.DATA_TYPE, 
COL.CHARACTER_MAXIMUM_LENGTH, 
COL.IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS COL 
WHERE COL.TABLE_NAME = 'Bank'

结果应该是这样的:

Query Results