我有3个不同的数据库,我正在编写一些存储过程。
是否可以在具有db名称的跨数据库中查找外键?
例如:
ForeignKey - 表名 - 列名 - 参考表名 - 参考列名称 - 参考数据库名称
答案 0 :(得分:3)
跨数据库边界不能存在和不存在FK关系。显然,您可能在不同的数据库中拥有相关数据,但除了手动搜索之外,没有任何工具/方法可以找到它们。
答案 1 :(得分:0)
获取所有外键,
select t.name as TableWithForeignKey, fk.constraint_column_id as FK_PartNo , c.name as ForeignKeyColumn
from sys.foreign_key_columns as fk
inner join sys.tables as t on fk.parent_object_id = t.object_id
inner join sys.columns as c on fk.parent_object_id = c.object_id and fk.parent_column_id = c.column_id
where fk.referenced_object_id = (select object_id from sys.tables where name = 'TableOthersForeignKeyInto')
order by TableWithForeignKey, FK_PartNo
在这里,您只需要更改数据库名称。 参考:get foreign keys