Запрос, чтобы проверить, является ли столбец обнуляемым - PullRequest
53 голосов
/ 05 марта 2011

Запрос, чтобы проверить, является ли столбец обнуляемым (пустые значения разрешены в столбце или нет). Желательно вернуть да / нет или 1/0 или true / false.

Ответы [ 3 ]

68 голосов
/ 05 марта 2011

Вы можете получить это из sys.columns:

select  is_nullable 
from    sys.columns 
where   object_id = object_id('Schema.TheTable') 
        and name = 'TheColumn'
62 голосов
/ 05 марта 2011

Вы также можете использовать функции метаданных COLUMNPROPERTY и OBJECT_ID:

SELECT COLUMNPROPERTY(OBJECT_ID('SchemaName.TableName', 'U'), 'ColumnName', 'AllowsNull');
7 голосов
/ 06 февраля 2016

Вы также можете проверить все столбцы в таблице на наличие свойства 'nullable' или любого другого свойства, которое вам нужно, например, таблицы с именем Bank.Table, которую мы должны запросить

column name, data type, Character Max Length, is 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

...