如何在跨数据库中找到外键?

时间:2012-12-19 14:11:14

标签: sql-server tsql

我有3个不同的数据库,我正在编写一些存储过程。 是否可以在具有db名称的跨数据库中查找外键?
例如:

  

ForeignKey - 表名 - 列名 - 参考表名 -   参考列名称 - 参考数据库名称

2 个答案:

答案 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