Sql server 查找约束所属的表
我需要找出特定约束属于哪个表(名称)Sql server 查找约束所属的表,sql-server,tsql,constraints,Sql Server,Tsql,Constraints,我需要找出特定约束属于哪个表(名称) 有人有任何TSQL来实现这一点吗?很多事情都可能被认为是一个约束: 主键 外键 唯一索引 检查约束 列默认值 你的问题有点含糊。您知道约束的名称、类型等吗 基于你问题中的有限信息。我建议您查看存储过程的源代码 在SQLServerManagementStudio中,使用对象资源管理器,必须导航到:“数据库”-“系统数据库”-“主机”-“可编程性”-“存储过程”-“系统存储过程”-“sys.sp_helpconstraint”。它包含用于查询各种约束的所有ts
有人有任何TSQL来实现这一点吗?很多事情都可能被认为是一个约束: 主键
外键
唯一索引
检查约束
列默认值 你的问题有点含糊。您知道约束的名称、类型等吗 基于你问题中的有限信息。我建议您查看存储过程的源代码
在SQLServerManagementStudio中,使用对象资源管理器,必须导航到:“数据库”-“系统数据库”-“主机”-“可编程性”-“存储过程”-“系统存储过程”-“sys.sp_helpconstraint”。它包含用于查询各种约束的所有tsql。这将找不到sys.index中的索引
SELECT
OBJECT_NAME(o.parent_object_id)
FROM
sys.objects o
WHERE
o.name = 'MyConstraintName' AND o.parent_object_id <> 0
选择
对象\u名称(o.parent\u对象\u id)
从…起
系统对象
哪里
o、 名称='MyConstraintName'和o.parent\u对象\u id 0
gbn,您的解决方案不起作用
SELECT
OBJECT_NAME(o.parent_object_id)
FROM
sys.objects o
WHERE
o.name = 'MyConstraintName' AND o.parent_object_id <> 0
很明显,您的“解决方案”必须基于大量未说明的模式假设。查询不会产生任何结果吗?请参阅下面的帖子,因为注释不支持格式。使用模式名称:
选择schemas.name、OBJECT\u name(o.parent\u OBJECT\u id),*从sys.objects左键连接sys.schemas on o.schema\u id=schemas.schema\u id,其中o.name='MyConstraintName'和o.parent\u OBJECT\u id 0
SELECT NAME AS ObjectName
,schema_name(o.schema_id) AS SchemaName, OBJECT_NAME(o.parent_object_id) as TableName
,type
,o.type_desc
FROM sys.objects o
WHERE o.is_ms_shipped = 0
AND o.NAME LIKE '%ConstraintUniqueID%'
ORDER BY o.NAME
(No column name)
SELECT NAME AS ObjectName
,schema_name(o.schema_id) AS SchemaName, OBJECT_NAME(o.parent_object_id) as TableName
,type
,o.type_desc
FROM sys.objects o
WHERE o.is_ms_shipped = 0
AND o.NAME LIKE '%ConstraintUniqueID%'
ORDER BY o.NAME