La meilleure façon d'ajouter une nouvelle colonne avec une première (mais pas par défaut) valeur?

J'ai besoin d'ajouter une nouvelle colonne à une base de données MS SQL 2005 avec une valeur initiale. Cependant, je ne veux PAS créer automatiquement une contrainte par défaut sur cette colonne. Au moment que j'ajoute une colonne la valeur par défaut est correct, mais cela peut changer au fil du temps. Donc, à l'avenir l'accès à la table DOIT spécifier une valeur, au lieu d'accepter un défaut.

Du mieux que je pouvais venir avec est:

ALTER TABLE tbl ADD col INTEGER NULL
UPDATE tbl SET col = 1
ALTER TABLE tbl ALTER COLUMN col INTEGER NOT NULL

Cela semble un peu inefficace pour largish tables (de 100 000 à 1 000 000 enregistrements).

J'ai expérimenté avec l'ajout de la colonne avec une valeur par défaut, puis la suppression de la contrainte par défaut. Cependant, je ne sais pas quel est le nom de la contrainte par défaut est et serait plutôt de ne pas l'accès sysobjects et les mettre dans la base de données des connaissances spécifiques.

S'il vous plaît, il doit y avoir une meilleure façon.

InformationsquelleAutor Adrian | 2009-06-25