約 1000 のテーブルを持つデータベースがあり、特定のテーブルに関連するすべてのテーブルを見つける必要があります。たとえば、顧客テーブルとしましょう。続行するにはどうすればよいですか?
9917 次
1 に答える
11
特定のテーブルに関連するすべてのテーブルを検索するように要求する場合、「顧客」テーブルへの外部キー参照を持つすべてのテーブルを要求していると思います。これは、以前のスタック オーバーフローの質問と密接に関連しています。システム カタログ ビューを使用する次のクエリでうまくいくはずです。
select t.name as TableWithForeignKey, fk.constraint_column_id as FK_columns , 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 = 'customers')
order by TableWithForeignKey, ForeignKeyColumn
于 2012-12-27T16:00:36.410 に答える