在其他地方用作外键的主键的标识

问题描述:

我在CustomerTable中有一个名为CustomerID的主键,并且在同一个数据库中有可能将此PK用作各种其他表(读取多于50个)中的FK。在其他地方用作外键的主键的标识

我想知道是否有一个简单的方法来确定这个PK被用作FK的所有表格。

注:我使用的SQL Server

任何帮助将高度赞赏

SELECT ro.name as Referedtable, co.name as foreinKey,so.name as ParentTable 
FROM sys.foreign_key_columns fkc 
join sys.sysobjects co on co.id=fkc.constraint_object_id 
join sys.sysobjects so on so.id=fkc.parent_object_id 
join sys.sysobjects ro on ro.id=fkc.referenced_object_id 
where ro.name='CustomerTable' 
+0

非常感谢...... – user1345260 2013-02-27 17:09:15

我想通了这一点由我和这里就是我所做的。

SELECT * 
    FROM [YourDBName].[sys].[foreign_keys] 
    WHERE name LIKE '%CustomerID%' 
+0

有两个问题解决方案1)名称可*定义2)认为LIKE“%命令%”具有表称为模式的“ordernumbers”“orderarticles “”边界“等。 – bummi 2013-02-27 17:16:14

+0

谢谢bummi。我现在意识到了错误。有没有办法优化我的解决方案? – user1345260 2013-02-27 17:20:09

+1

SELECT OBJECT_NAME(parent_object_ID)FROM [sys]。[foreign_keys] WHERE OBJECT_NAME(referenced_object_ID)='CustomerTable' – bummi 2013-02-27 17:29:34