83

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.

Sam
  • 7,252
  • 16
  • 46
  • 65
user646093
  • 1,495
  • 3
  • 15
  • 20

3 Answers3

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:

Query Results

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