Sql server 有没有一种快速的方法来确定哪些表将特定的主键作为外键引用?

Sql server 有没有一种快速的方法来确定哪些表将特定的主键作为外键引用?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我正在进行一点重构,但是,我想检查一下我要更改的当前主键是否在任何其他表中被引用为外键。我正在使用的模式非常大,因此扫描模式中的每个表不是一个可行的选项。类似这样的内容 SELECT fk.name, t1.name 'Child table', t2.name 'Parent table' FROM sys.foreign_keys fk INNER JOIN sys.tables t1 ON fk.parent_object_id = t1.obj

我正在进行一点重构,但是,我想检查一下我要更改的当前主键是否在任何其他表中被引用为外键。我正在使用的模式非常大,因此扫描模式中的每个表不是一个可行的选项。

类似这样的内容

SELECT
    fk.name,
    t1.name 'Child table',
    t2.name 'Parent table'
FROM 
    sys.foreign_keys fk
INNER JOIN 
    sys.tables t1 ON fk.parent_object_id = t1.object_id
INNER JOIN 
    sys.tables t2 ON fk.referenced_object_id = t2.object_id 
WHERE 
    t2.name = '(your table name here)'

EXEC sp\u help'yourtable'
-结果集中的一个表包含引用该表的FKs。

链接到另一个可能性:

++很好的答案。虽然数据不是结构化的,但简单性确实让我觉得有点像戈德堡风格@代码诗人-谢谢,知道如何以普通的表格格式获取这些内容总是很有帮助的,不过-没有什么比返回结果集的查询更像了,结果集本身可以复制粘贴到查询窗口中并运行。:)如果希望以编程方式获取此信息,可以检查以下答案: