簡體   English   中英

如何在 sql 服務器中找到所有包含給定表主鍵外鍵的表?

[英]How do I find all the tables which contains foreign key for given table primary key in sql server?

我正在嘗試從數據庫中搜索所有表,其中包含 sql 服務器中給定(特定)表主鍵的外鍵。 請幫忙。

您可以使用此內置存儲過程來搜索給定表的所有外鍵

EXEC sp_fkeys 'TableName'

如果這不適合您的需要,您可以在此頁面上嘗試 10 種其他方法 - https://database.guide/11-ways-return-foreign-keys-sql-server-database-t-sql/

嘗試這個..

SELECT
  sys.columns.name AS ColumnName,
  tables.name AS TableName
FROM
  sys.columns
JOIN sys.tables ON
  sys.columns.object_id = tables.object_id
WHERE
  sys.columns.name = 'ForeignKeyColumnName'

這應該是一個很好的起點:

select object_name(parent_object_id)
from sys.foreign_keys
where referenced_object_id = object_id('ParentTable');

這沒有考慮到 FK 專門引用了您的表的 PK。 如果以上內容不足以縮小范圍,請開始拉入sys.foreign_key_columns 我將把它作為練習留給讀者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM