我有 3 个不同的数据库,我正在编写一些存储过程。是否可以在具有数据库名称的跨数据库中找到外键?
例如:
ForeignKey -- 表名 -- 列名 -- 引用表名 -- 引用列名 -- 引用数据库名
我有 3 个不同的数据库,我正在编写一些存储过程。是否可以在具有数据库名称的跨数据库中找到外键?
例如:
ForeignKey -- 表名 -- 列名 -- 引用表名 -- 引用列名 -- 引用数据库名
FK 关系不能也不存在跨数据库边界。显然,您可能在单独的数据库中拥有相关数据,但除了手动搜索之外,没有其他工具/方法可以找到它们。
要获取所有外键,
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
在这里,您只需要更改数据库名称。参考:获取外键