Подтвердить что ты не робот

Способ проверки наличия внешнего ключа в SQL 2005

Есть ли простой способ проверить, существует ли внешний ключ для столбца в таблице? Я пишу script, который добавит внешний ключ, только если он не существует.

4b9b3361

Ответ 1

Вы можете использовать этот script:

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

Это можно сделать, если вы развернете таблицу и щелкните правой кнопкой мыши на существующем FK и выберите script как "DROP TO", а затем вы получите сгенерированный script из SQL.

Ответ 2

Woo-Hoo! Я просто провел последние два дня, делая это.

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)