使用SQL Server 2012,我想標記一個不活動的記錄。在我做之前,我想檢查它的主鍵是否被引用。如何獲取引用表地址中主鍵ID的每個表中的表名稱和列名稱的列表(結果集行)?
我嘗試搜索「獲取引用主鍵的每個表中的表名和列名的列表」和「在每個引用主鍵的表中獲取列名」,但沒有顯示相關內容。這是一個棘手的問題(對我來說)。
使用SQL Server 2012,我想標記一個不活動的記錄。在我做之前,我想檢查它的主鍵是否被引用。如何獲取引用表地址中主鍵ID的每個表中的表名稱和列名稱的列表(結果集行)?
我嘗試搜索「獲取引用主鍵的每個表中的表名和列名的列表」和「在每個引用主鍵的表中獲取列名」,但沒有顯示相關內容。這是一個棘手的問題(對我來說)。
編輯:添加一個查詢來列出所有外鍵,引用到您的表的表和引用它的表中的列。
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?
ba.name沒有限制。 –
謝謝,更新。 –
該查詢不提供外鍵列名稱。 –
可能重複的[如何在SQL Server中查找外鍵依賴關係?](https://stackoverflow.com/questions/925738/how-to-find-foreign-key-dependencies-in-sql-server ) –
謝謝你,斯坦肖。我應該刪除我的問題嗎? –
如果那個帖子完全回答你的問題,是的。 –