查找约束属于哪个表

问题描述 投票:19回答:3

我需要找出特定约束属于哪个表(名称)。

有没有人有任何TSQL来实现这一目标?

sql-server tsql constraints
3个回答
2
投票

许多事情可以被认为是一个约束:

首要的关键 外键 独特的指数 检查约束 列默认

你的问题有点模糊。你知道约束的名称,类型等吗?

基于您问题中的有限信息。我建议您查看master.sys.sp_helpconstraint存储过程的源代码。

在Sql Server Management Studio中,使用对象资源管理器,导航到:“数据库” - “系统数据库” - “主” - “可编程性” - “存储过程” - “系统存储过程” - “sys.sp_helpconstraint”。它包含了查询所有各种约束的所有tsql。


29
投票

这将找不到sys.indexes中的索引

SELECT
   OBJECT_NAME(o.parent_object_id)
FROM
   sys.objects o
WHERE
   o.name = 'MyConstraintName' AND o.parent_object_id <> 0

0
投票

gbn,你的解决方案似乎不起作用?

SELECT
   OBJECT_NAME(o.parent_object_id)
FROM
   sys.objects o
WHERE
   o.name = 'MyConstraintName' AND o.parent_object_id <> 0

因此,如果'MyConstraintName'变为'FK_myConstraint',则查询变为

SELECT OBJECT_NAME(o.parent_object_id)
FROM sys.objects o
WHERE o.name = 'MyConstraintName' 
  AND o.parent_object_id <> 0

哪个没有结果

(No column name)

它认为你的“解决方案”必须基于关于模式的大量未说明的假设。

© www.soinside.com 2019 - 2024. All rights reserved.