39 votes

SQL Server : découvrez la valeur par défaut d'une colonne avec une requête

Comment puis-je trouver la valeur par défaut d'une colonne dans 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 ?

72voto

Martin Smith Points 174101

Vous pouvez trouver la définition stockée avec ce qui suit (n'oubliez pas d'ajuster la colonne et le nom de la table pour trouver ceux qui sont pertinents pour votre environnement !)

SELECT object_definition(default_object_id) AS definition
FROM   sys.columns
WHERE  name      ='colname'
AND    object_id = object_id('dbo.tablename')

18voto

shA.t Points 7969

J'utilise INFORMATION_SCHEMA tableau comme ceci :

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;

16voto

OMG Ponies Points 144785

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X