Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come faccio a eliminare un vincolo di chiave esterna solo se esiste nel server sql?

Questo è molto più semplice dell'attuale soluzione proposta:

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

Se devi eliminare un altro tipo di vincolo, questi sono i codici applicabili da passare alla funzione OBJECT_ID() nella seconda posizione del parametro:

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

Puoi anche utilizzare OBJECT_ID senza il secondo parametro.

Elenco completo dei tipi qui :

Tipo di oggetto:

Si applica a:da SQL Server 2012 a SQL Server 2014.