我正在尝试删除表格,但收到以下消息:
消息 3726,级别 16,状态 1,第 3 行 无法删除对象“dbo.UserProfile”,因为它被外键约束引用。 消息 2714,级别 16,状态 6,第 2 行 数据库中已经有一个名为“UserProfile”的对象。
我用 SQL Server Management Studio 环顾四周,但找不到约束。如何找出外键约束?
这里是:
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