Query to check whether a column is nullable (null values are allowed in the column or not). It should preferably return yes/no or 1/0 or true/false.
Asked
Active
Viewed 5.7k times
3 Answers
93
You could retrieve that from sys.columns
:
select is_nullable
from sys.columns
where object_id = object_id('Schema.TheTable')
and name = 'TheColumn'

Mushtaq Jameel
- 7,053
- 7
- 33
- 52

Andomar
- 232,371
- 49
- 380
- 404
89
You could also use the COLUMNPROPERTY
and OBJECT_ID
metadata functions:
SELECT COLUMNPROPERTY(OBJECT_ID('SchemaName.TableName', 'U'), 'ColumnName', 'AllowsNull');
20
You can also check all columns in a table for 'nullable' property or any other property that you want, for example table named Bank.Table we need to query
column name
, data type
, Character Max Length
, is nullable
Use SQL Information_Schema like this example:
SELECT
COL.COLUMN_NAME,
COL.DATA_TYPE,
COL.CHARACTER_MAXIMUM_LENGTH,
COL.IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS COL
WHERE COL.TABLE_NAME = 'Bank'
The result should be like this:

Ashraf Sada
- 4,527
- 2
- 44
- 48