2013-02-27 51 views
0

我在CustomerTable中有一個名爲CustomerID的主鍵,並且在同一個數據庫中有可能將此PK用作各種其他表(讀取多於50個)中的FK。在其他地方用作外鍵的主鍵的標識

我想知道是否有一個簡單的方法來確定這個PK被用作FK的所有表格。

注:我使用的SQL Server

任何幫助將高度讚賞

回答

2
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

0

我想通了這一點由我和這裏就是我所做的。

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