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

Suppression de contraintes sans nom

Pour supprimer une contrainte par défaut individuelle sans nom sur une colonne, utilisez le code suivant :

DECLARE @ConstraintName VARCHAR(256)
SET @ConstraintName = (
     SELECT             obj.name
     FROM               sys.columns col 

     LEFT OUTER JOIN    sys.objects obj 
     ON                 obj.object_id = col.default_object_id 
     AND                obj.type = 'F' 

     WHERE              col.object_id = OBJECT_ID('TableName') 
     AND                obj.name IS NOT NULL
     AND                col.name = 'ColunmName'
)   

IF(@ConstraintName IS NOT NULL)
BEGIN
    EXEC ('ALTER TABLE [TableName] DROP CONSTRAINT ['[email protected]+']')
END

Si vous voulez faire cela pour une colonne par défaut, ce qui est probablement plus courant que la question d'origine et je suis sûr que beaucoup de gens y arriveront à partir d'une recherche Google, alors changez simplement la ligne :

obj.type = 'F'

à

obj.type = 'D'