Sql 获取默认约束信息
我试图获取给定表的默认约束信息。我写了这样的东西:Sql 获取默认约束信息,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我试图获取给定表的默认约束信息。我写了这样的东西: SELECT c.name , col.name FROM Rem.sys.default_constraints c INNER JOIN Rem.sys.columns col ON col.default_object_id = c.object_id INNER JOIN Rem.sys.objects o ON o.object_id = c.parent_object_id
SELECT c.name ,
col.name
FROM Rem.sys.default_constraints c
INNER JOIN Rem.sys.columns col ON col.default_object_id = c.object_id
INNER JOIN Rem.sys.objects o ON o.object_id = c.parent_object_id
INNER JOIN Rem.sys.schemas s ON s.schema_id = o.schema_id
WHERE s.name = 'dbo'
AND o.name = 'Desk_Hist'
但它不会返回默认值。所以我尝试了另一种方法,查询结果是:
SELECT *
FROM Rem.information_schema.columns columns
WHERE columns.table_catalog = 'Rem'
AND columns.table_schema = 'dbo'
AND columns.table_name = 'Desk_Hist'
AND COLUMN_DEFAULT IS NOT NULL
但它什么也没给我
有人能帮我吗?您的第一个查询应该可以,但是您只包括约束表中的约束名称,没有其他内容(
c.name
)
尝试将
c.definition
包含在您的选择列表中默认值在“definition”列中,尝试运行查询,但不包括以下位置:
SELECT c.name ,
col.name,
c.definition
FROM Rem.sys.default_constraints c
INNER JOIN Rem.sys.columns col ON col.default_object_id = c.object_id
INNER JOIN Rem.sys.objects o ON o.object_id = c.parent_object_id
INNER JOIN Rem.sys.schemas s ON s.schema_id = o.schema_id
vanc.definition返回Null