Wie lege ich FK für alle Tabellen in SQL Server 2005 fest?

Wie lege ich FK für alle Tabellen in SQL Server 2005 fest?

Ich habe etwa 200 Tabellen in der SQL Server 2005-Datenbank. Fast alle Tabellen haben den Spaltennamen „AAA“, und ich möchte FK auf die Spalte A_ID in der Tabelle tbl_AAA setzen. Ich möchte wissen, wie ich das in SQL Server 2005 machen kann.

Antwort1

Sie können die Systemansicht „INFORMATION_SCHEMA.COLUMNS“ verwenden und eine Abfrage erstellen, die die zur Ausführung der Aufgabe erforderliche DDL-Anweisung ergibt.

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';

Sie können die Ausgabe in SSMS einfügen und ausführen. Ich habe das aus dem Stegreif gemacht, Sie können es also überprüfen/anpassen/korrigieren, um es Ihren Bedürfnissen anzupassen.

Prost

verwandte Informationen