Подтвердить что ты не робот

SQL Server: узнать значение по умолчанию для столбца с запросом

Как узнать значение столбца таблицы по умолчанию с помощью SQL-запроса?

Используя эту хранимую процедуру:

sp_columns @tablename 

Я получаю некоторую информацию о столбцах конкретной таблицы, но значение по умолчанию для столбцов отсутствует. Как я могу получить его?

4b9b3361

Ответ 1

Вы можете найти сохраненное определение ниже (не забудьте настроить имя столбца и таблицы, чтобы найти те, которые относятся к вашей среде!)

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

Ответ 2

Использование:

   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

Ответ 3

Я использую INFORMATION_SCHEMA:

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