SQL Server: узнать значение по умолчанию для столбца с запросом
Как узнать значение столбца таблицы по умолчанию с помощью SQL-запроса?
Используя эту хранимую процедуру:
sp_columns @tablename
Я получаю некоторую информацию о столбцах конкретной таблицы, но значение по умолчанию для столбцов отсутствует. Как я могу получить его?
Ответы
Ответ 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