Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment supprimer une contrainte de clé étrangère uniquement si elle existe dans le serveur SQL ?

C'est beaucoup plus simple que la solution actuellement proposée :

IF (OBJECT_ID('dbo.FK_ConstraintName', 'F') IS NOT NULL)
BEGIN
    ALTER TABLE dbo.TableName DROP CONSTRAINT FK_ConstraintName
END

Si vous devez supprimer un autre type de contrainte, voici les codes applicables à passer dans la fonction OBJECT_ID() en deuxième position de paramètre :

C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
PK = PRIMARY KEY constraint
UQ = UNIQUE constraint

Vous pouvez également utiliser OBJECT_ID sans le second paramètre.

Liste complète des types ici :

Type d'objet :

S'applique à :SQL Server 2012 à SQL Server 2014.