SQL Server 2005 のすべてのテーブルに FK を設定するにはどうすればよいでしょうか?

SQL Server 2005 のすべてのテーブルに FK を設定するにはどうすればよいでしょうか?

SQL Server 2005 データベースには約 200 個のテーブルがあります。ほとんどのテーブルには列名 "AAA" があり、これをテーブル tbl_AAA の列 A_ID に FK を設定する必要があります。SQL Server 2005 でこれをどのように実行できるかを知りたいです。

答え1

システム ビュー「INFORMATION_SCHEMA.COLUMNS」を使用して、タスクの実行に必要な DDL ステートメントを生成するクエリを構築できます。

SELECT 
    'ALTER TABLE ' 
    + TABLE_NAME
    + ' ADD FOREIGN KEY (' 
    + COLUMN_NAME 
    + ') REFERENCES tbl_AAA(AAA);'
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    COLUMN_NAME = 'AAA' 
    AND TABLE_NAME <> 'tbl_AAA';

この出力を SSMS に貼り付けて実行できます。これは思いつきで実行しただけなので、必要に応じて確認/調整/修正してください。

乾杯

関連情報