3つの異なるデータベースがあり、いくつかのストアドプロシージャを作成しています。db名を持つクロスデータベースで外部キーを見つけることは可能ですか?
例:
ForeignKey-テーブル名-列名-参照テーブル名-参照列名-参照データベース名
3つの異なるデータベースがあり、いくつかのストアドプロシージャを作成しています。db名を持つクロスデータベースで外部キーを見つけることは可能ですか?
例:
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
ここでは、db名を変更する必要があります。参照:外部キーを取得する