web-dev-qa-db-fra.com

Requête pour vérifier si une colonne peut être annulée

Requête pour vérifier si une colonne est nullable (les valeurs nulles sont autorisées dans la colonne ou non). Il doit de préférence retourner oui/non ou 1/0 ou vrai/faux.

54
user646093

Vous pouvez également utiliser les COLUMNPROPERTY et OBJECT_ID fonctions de métadonnées:

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

Vous pouvez récupérer cela à partir de sys.columns:

select  is_nullable 
from    sys.columns 
where   object_id = object_id('Schema.TheTable') 
        and name = 'TheColumn'
70
Andomar

Vous pouvez également rechercher dans toutes les colonnes d'une table la propriété 'nullable' ou toute autre propriété de votre choix, par exemple une table nommée Bank. Table que nous devons interroger

column name, data type, Character Max Length, is nullable

Utilisez SQL Information_Schema comme cet exemple:

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

Le résultat devrait être comme ceci:

Query Results

8
Ashraf Abusada