幾乎相同Query a Table's Foreign Key relationships,但對SQL Server 2000SQL Server 2000中 - 查詢表的外鍵關係
對於一個給定的表「富」,我需要一個查詢生成一組表有國外指向foo的鍵。
幾乎相同Query a Table's Foreign Key relationships,但對SQL Server 2000SQL Server 2000中 - 查詢表的外鍵關係
對於一個給定的表「富」,我需要一個查詢生成一組表有國外指向foo的鍵。
SELECT o2.name
FROM sysobjects o
INNER JOIN sysforeignkeys fk on o.id = fk.rkeyid
INNER JOIN sysobjects o2 on fk.fkeyid = o2.id
WHERE o.name = 'foo'
從這裏開始
SELECT cons.TABLE_NAME
, cons.CONSTRAINT_NAME PK_NAME
, cols.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS cons
LEFT join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cols
ON cons.CONSTRAINT_NAME = cols.CONSTRAINT_NAME
WHERE cons.CONSTRAINT_TYPE = 'foreign KEY'
ORDER BY cons.TABLE_NAME
, cons.CONSTRAINT_NAME
, cols.COLUMN_NAME
[編輯]格式是全亂了
[EDIT2]不再
試試這個T-SQL:
select col_name(fkeyid, fkey) as column_name, object_name(rkeyid) as referenced_table_name, col_name(rkeyid, rkey) as referenced_column_name from sysforeignkeys where object_name(fkeyid) = 'tableNameHere' order by constid
我已經稍微改寫查詢以給你所有依賴特定表格的其他表格:
名select object_name(fkeyid),
col_name(fkeyid, fkey) as column_name,
col_name(rkeyid, rkey) as referenced_column_name
from sysforeignkeys
where object_name(rkeyid) = 'tableNameHere'
order by constid
有什麼應有的尊重,誰在這裏把我投給了我?你自己。 – alex 2009-01-14 20:51:38
家長和孩子
/* this will find out all of the foreign key references for a table*/
DECLARE @tableName varchar(128)
SET @tableName = 'tCounter'
SELECT
pt.[name] AS 'parentTable',
ct.[name] AS 'childTable',
fk.[name] AS 'fkName',
*
FROM sys.foreign_keys fk
INNER JOIN sys.tables pt
ON pt.object_ID = fk.parent_object_id
INNER JOIN sys.tables ct
ON ct.object_ID = fk.referenced_object_id
WHERE pt.name = @tableName
OR ct.name = @tableName
ORDER BY pt.name, ct.name
這正是要求,然後一些。 – StingyJack 2009-01-14 21:13:40
我跑了它,並沒有輸出。在將其標記之前,應該對此進行評論。 – TamusJRoyce 2011-08-08 14:23:16
關閉...信用爲一個可行的查詢。 對於給定的表'foo',我需要一個查詢來生成一組具有指向foo的外鍵的表。 – 2009-01-14 20:32:33