2009-05-15 2 views

Antwort

65

Sie dieses Skript verwenden:

IF EXISTS (SELECT * 
      FROM sys.foreign_keys 
      WHERE object_id = OBJECT_ID(N'[dbo].[FK_NAME]') 
      AND parent_object_id = OBJECT_ID(N'[dbo].[MyTable]')) 
BEGIN 
    -- do stuff 
END 

Dies kann getan werden, wenn Sie die Tabelle und klicken Sie rechts auf eine vorhandene FK erweitern und Skriptschlüssel als „DROP TO“ wählen und dann werden Sie eine generierte erhalten Skript aus SQL.

+0

Dieses Skript hat super funktioniert! Ich kann nicht glauben, dass man so etwas von der Speisekarte schreiben könnte. Vielen Dank für die Hilfe. –

+5

Sie können fast alles in SQL mit der rechten Maustaste anklicken und ein Skript für Sie erstellen, Tabellen, Stored Procedures, Foreign Key und mehr. Management Studio ist dein Freund, wenn du einige der coolen Funktionen gelernt hast. – CodeLikeBeaker

+0

Diese Methode funktioniert nur, wenn der Standardname des Fremdschlüssels verwendet wird. Es ist unzuverlässig, an Namen zu arbeiten, die auf Annahmen basieren, insbesondere wenn Sie an Datenbanken arbeiten, die von anderen erstellt wurden, die einer anderen Namenskonvention folgen könnten. Gibt es Möglichkeiten, zu überprüfen, ob eine bestimmte Spalte ein Fremdschlüssel zu einer anderen Tabelle ist, anstatt nach dem Namen des Fremdschlüssels zu suchen? –

7

Woo-hoo! Ich habe die letzten zwei Tage damit verbracht.

IF NOT EXISTS (SELECT name 
       FROM sys.foreign_keys 
       WHERE name = 'FK_Name') 
    ALTER TABLE table_name ADD CONSTRAINT FK_Name FOREIGN KEY (idcol) 
          REFERENCES OtherTable(idcol) 
Verwandte Themen