[英]How do I find all the tables which contains foreign key for given table primary key in sql server?
I am trying to search all the tables from database which contains foreign key of given(specific) table's primary key in sql server.我正在尝试从数据库中搜索所有表,其中包含 sql 服务器中给定(特定)表主键的外键。 Please help.
请帮忙。
You can use this built-in stored procedure to search all foreign keys for the given table您可以使用此内置存储过程来搜索给定表的所有外键
EXEC sp_fkeys 'TableName'
If this doesn't suit your needs, you can try 10 other ways on this page - https://database.guide/11-ways-return-foreign-keys-sql-server-database-t-sql/如果这不适合您的需要,您可以在此页面上尝试 10 种其他方法 - https://database.guide/11-ways-return-foreign-keys-sql-server-database-t-sql/
Try this..尝试这个..
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'
This should be a good starting point:这应该是一个很好的起点:
select object_name(parent_object_id)
from sys.foreign_keys
where referenced_object_id = object_id('ParentTable');
This doesn't take into account that the FK is specifically referencing your table's PK.这没有考虑到 FK 专门引用了您的表的 PK。 If the above doesn't narrow it down enough, start pulling in
sys.foreign_key_columns
.如果以上内容不足以缩小范围,请开始拉入
sys.foreign_key_columns
。 I'll leave that as an exercise for the reader.我将把它作为练习留给读者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.