可以說我有表1 =「富」等4個表費用1,費用2,費用3,費用4獲取相關的表的列表中,SQL Server 2005的
現在說foo的主鍵是費用1的外鍵和費用2。
鑑於'foo'這個名字,我將如何知道fee1和fee2已經爲foo定義了關鍵依賴關係。
請幫忙,僞查詢會有幫助。
但是,我知道如何弄清楚foo這個名字如何單獨獲取foo的foriegn關鍵依賴關係。使用INFORMATION_SCHEMA.USAGE_KEY_COLUMN。
可以說我有表1 =「富」等4個表費用1,費用2,費用3,費用4獲取相關的表的列表中,SQL Server 2005的
現在說foo的主鍵是費用1的外鍵和費用2。
鑑於'foo'這個名字,我將如何知道fee1和fee2已經爲foo定義了關鍵依賴關係。
請幫忙,僞查詢會有幫助。
但是,我知道如何弄清楚foo這個名字如何單獨獲取foo的foriegn關鍵依賴關係。使用INFORMATION_SCHEMA.USAGE_KEY_COLUMN。
的一種方式,只需添加和TC.TABLE_NAME = '富' WHERE子句
SELECT TC.CONSTRAINT_SCHEMA + '.'+ TC.TABLE_NAME AS PRIMARYKEYTABLE
,TC.CONSTRAINT_NAME AS PRIMARYKEY
,COALESCE(RC1.CONSTRAINT_NAME,'N/A') AS FOREIGNKEY
,CASE WHEN TC2.TABLE_NAME IS NULL THEN 'N/A'
ELSE TC.CONSTRAINT_SCHEMA + '.' + TC2.TABLE_NAME END AS FOREIGNKEYTABLE
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC1
ON TC.CONSTRAINT_NAME =RC1.UNIQUE_CONSTRAINT_NAME
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC2
ON TC2.CONSTRAINT_NAME =RC1.CONSTRAINT_NAME
WHERE TC.CONSTRAINT_TYPE ='PRIMARY KEY'
ORDER BY TC.TABLE_NAME,TC.CONSTRAINT_NAME,RC1.CONSTRAINT_NAME
試試這個在SQL Server管理工作室:
SELECT
fk.name,
OBJECT_NAME(fk.parent_object_id) 'Child table'
FROM
sys.foreign_keys fk
WHERE
fk.referenced_object_id = OBJECT_ID('YourTableNameHEre')
這將列出所有的外鍵約束以及它們來自哪個表,都是引用您的YourTableNameHere
表。
試試這個
SELECT
'CONSTRAINT :' + C.Constraint_Name + '
Goes FROM ' + PK.TABLE_NAME + '.' + PT.COLUMN_NAME + '
To ' + FK.TABLE_NAME + '.' + CU.COLUMN_NAME + '
-----------------------------------------------------
'
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN
(
SELECT
i1.TABLE_NAME, i2.COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME
爲了讓您的特定表,添加
`WHERE PK.TABLE_Name = "YourTableName"`
我用sp_help用於提供不同的數據庫對象的一決高低視圖。指定數據庫表時,它將返回有關主鍵,約束,索引,外鍵以及它們引用的內容的信息,以及哪些其他表具有指定的外鍵。記住一次獲取這些信息的方法是快速和容易的。