Puis-je créer une contrainte par défaut nommée dans une instruction Ajouter une colonne dans SQL Server?

StackOverflow https://stackoverflow.com/questions/3770015

Question

Dans SQL Server, j'ai une nouvelle colonne sur une table:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

Cela échoue parce que je précise NOT NULL sans spécifier une contrainte par défaut. Le tableau ne devrait pas avoir une contrainte par défaut.

Pour contourner ce problème, je pourrais créer la table avec la contrainte par défaut, puis retirez-le.

Cependant, il ne semble pas être un moyen de spécifier que la contrainte par défaut devrait être nommé dans le cadre de cette déclaration, donc ma seule façon de se débarrasser de celui-ci est d'avoir une procédure stockée qui le recherche dans le Table sys.default_constraints.

Ceci est un peu désordonné / bavard pour une opération qui est susceptible de se produire beaucoup. Quelqu'un at-il de meilleures solutions pour cela?

Était-ce utile?

La solution

Cela devrait fonctionner:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

Autres conseils

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top