[英]How to to JOIN 2 tables with foreign key pointing to other table primary key to return all the row that have such primary key in 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.