小编典典

如何找出引用 SQL Server 中表的 FOREIGN KEY 约束?

all

我正在尝试删除表格,但收到以下消息:

消息 3726,级别 16,状态 1,第 3 行
无法删除对象“dbo.UserProfile”,因为它被外键约束引用。
消息 2714,级别 16,状态 6,第 2 行
数据库中已经有一个名为“UserProfile”的对象。

我用 SQL Server Management Studio 环顾四周,但找不到约束。如何找出外键约束?


阅读 72

收藏
2022-08-19

共1个答案

小编典典

这里是:

SELECT 
   OBJECT_NAME(f.parent_object_id) TableName,
   COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM 
   sys.foreign_keys AS f
INNER JOIN 
   sys.foreign_key_columns AS fc 
      ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN 
   sys.tables t 
      ON t.OBJECT_ID = fc.referenced_object_id
WHERE 
   OBJECT_NAME (f.referenced_object_id) = 'YourTableName'

这样,您将获得引用表和列名。

根据评论建议,编辑为使用 sys.tables 而不是通用 sys.objects。谢谢,马克_s

2022-08-19