我在CustomerTable
中有一個名爲CustomerID
的主鍵,並且在同一個數據庫中有可能將此PK用作各種其他表(讀取多於50個)中的FK。在其他地方用作外鍵的主鍵的標識
我想知道是否有一個簡單的方法來確定這個PK被用作FK的所有表格。
注:我使用的SQL Server
任何幫助將高度讚賞
我在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