2017-07-07 63 views
0

使用SQL Server 2012,我想标记一个不活动的记录。在我做之前,我想检查它的主键是否被引用。如何获取引用表地址中主键ID的每个表中的表名称和列名称的列表(结果集行)?

我尝试搜索“获取引用主键的每个表中的表名和列名的列表”和“在每个引用主键的表中获取列名”,但没有显示相关内容。这是一个棘手的问题(对我来说)。

+0

可能重复的[如何在SQL Server中查找外键依赖关系?](https://stackoverflow.com/questions/925738/how-to-find-foreign-key-dependencies-in-sql-server ) –

+0

谢谢你,斯坦肖。我应该删除我的问题吗? –

+0

如果那个帖子完全回答你的问题,是的。 –

回答

0

编辑:添加一个查询来列出所有外键,引用到您的表的表和引用它的表中的列。

SELECT obj.name AS FK_NAME, 
    sch.name AS [schema_name], 
    tab1.name AS [table], 
    col1.name AS [column], 
    tab2.name AS [referenced_table], 
    col2.name AS [referenced_column] 
FROM sys.foreign_key_columns fkc 
INNER JOIN sys.objects obj 
    ON obj.object_id = fkc.constraint_object_id 
INNER JOIN sys.tables tab1 
    ON tab1.object_id = fkc.parent_object_id 
INNER JOIN sys.schemas sch 
    ON tab1.schema_id = sch.schema_id 
INNER JOIN sys.columns col1 
    ON col1.column_id = parent_column_id AND col1.object_id = tab1.object_id 
INNER JOIN sys.tables tab2 
    ON tab2.object_id = fkc.referenced_object_id 
INNER JOIN sys.columns col2 
    ON col2.column_id = referenced_column_id AND col2.object_id = tab2.object_id 
WHERE tab2.name = 'TABLENAME' 

查询基于本主题回复; How can I list all foreign keys referencing a given table in SQL Server?

+0

ba.name没有限制。 –

+0

谢谢,更新。 –

+0

该查询不提供外键列名称。 –

相关问题