本文介绍了如何找出哪些 FOREIGN KEY 约束引用 SQL Server 中的表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图删除一张桌子,但收到以下消息:
I am trying to drop a table but getting the following message:
消息 3726,级别 16,状态 1,第 3 行
无法删除对象dbo.UserProfile",因为它被外键约束引用.
消息 2714,级别 16,状态 6,第 2 行
数据库中已经有一个名为UserProfile"的对象.
我使用 SQL Server Management Studio 环顾四周,但找不到约束条件.如何找出外键约束?
I looked around with SQL Server Management Studio but I am unable to find the constraint. How can I find out the foreign key constraints?
推荐答案
这里是:
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'
这样,您将获得引用表和列名称.
This way, you'll get the referencing table and column name.
根据评论建议编辑为使用 sys.tables 而不是通用的 sys.objects.谢谢,马克_s
Edited to use sys.tables instead of generic sys.objects as per comment suggestion.Thanks, marc_s
这篇关于如何找出哪些 FOREIGN KEY 约束引用 SQL Server 中的表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!