Existe-t-il un moyen simple de vérifier s'il existe une clé étrangère pour une colonne d'une table? J'écris un script qui ajoutera la clé étrangère uniquement si elle n'existe pas.
Vous pouvez utiliser ce 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
Cela peut être fait si vous développez le tableau et faites un clic droit sur un FK existant et choisissez la clé de script comme "DROP TO" et vous obtiendrez alors un script généré à partir de SQL.
Woo-hoo! Je viens de passer les deux derniers jours à faire ça.
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)