在其他地方用作外键的主键的标识
我在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'
我想通了这一点由我和这里就是我所做的。
SELECT *
FROM [YourDBName].[sys].[foreign_keys]
WHERE name LIKE '%CustomerID%'
有两个问题解决方案1)名称可*定义2)认为LIKE“%命令%”具有表称为模式的“ordernumbers”“orderarticles “”边界“等。 – bummi 2013-02-27 17:16:14
谢谢bummi。我现在意识到了错误。有没有办法优化我的解决方案? – user1345260 2013-02-27 17:20:09
SELECT OBJECT_NAME(parent_object_ID)FROM [sys]。[foreign_keys] WHERE OBJECT_NAME(referenced_object_ID)='CustomerTable' – bummi 2013-02-27 17:29:34
非常感谢...... – user1345260 2013-02-27 17:09:15