Comment connaître la valeur par défaut d'une colonne d'une table à l'aide d'une requête SQL?
En utilisant cette procédure stockée:
sp_columns @tablename
J'obtiens des informations sur les colonnes d'une table particulière mais la valeur par défaut des colonnes est manquante, comment puis-je l'obtenir?
Vous pouvez trouver la définition stockée avec ce qui suit (n'oubliez pas d'ajuster le nom de la colonne et du tableau pour trouver ceux qui correspondent à votre environnement!)
SELECT object_definition(default_object_id) AS definition
FROM sys.columns
WHERE name ='colname'
AND object_id = object_id('dbo.tablename')
Utilisation:
SELECT so.name AS table_name,
sc.name AS column_name,
sm.text AS default_value
FROM sys.sysobjects so
JOIN sys.syscolumns sc ON sc.id = so.id
LEFT JOIN sys.syscomments sm ON sm.id = sc.cdefault
WHERE so.xtype = 'U'
AND so.name = @yourtable
ORDER BY so.[name], sc.colid
J'utilise INFORMATION_SCHEMA
table comme celle-ci:
SELECT
TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = @SchemaName
AND TABLE_NAME = @TableName
AND COLUMN_NAME = @ColumnName;