与给定表或视图有关系的所有表的列表

时间:2010-04-28 19:01:08

标签: sql sql-server sql-server-2008

在SQL Server中是否有一个命令返回与给定表或视图有关系的所有表的列表?

编辑:SQL SERVER 2008

3 个答案:

答案 0 :(得分:13)

对于SQL Server 2005及更高版本,请使用以下内容:

SELECT
    name, OBJECT_NAME(parent_object_id) 'Table'
FROM 
    sys.foreign_keys
WHERE 
    referenced_object_id = OBJECT_ID('Your-referenced-table-name-here')

答案 1 :(得分:2)

-- To find all the foreign keys established to a table!
-- Columns: FKTABLE_NAME, FKCOLUMN_NAME
sp_fkeys @pktable_name='your table name here'

答案 2 :(得分:2)

假设您的表名是TableX。如果您想知道所有外键关系(在TableX中引用的其他表和其他表的列中引用的TableX列),您可以这样做:

select name 'ForeignKeyName', 
    OBJECT_NAME(referenced_object_id) 'RefrencedTable',
    OBJECT_NAME(parent_object_id) 'ParentTable'
from sys.foreign_keys
where referenced_object_id = OBJECT_ID('TableX') or 
    parent_object_id = OBJECT_ID('TableX')