web-dev-qa-db-fra.com

Commande pour ajouter une contrainte par défaut

Il semble y avoir au moins deux façons d'ajouter une contrainte par défaut à l'aide de T-SQL simple. Ai-je raison de dire que la seule différence entre les deux ci-dessous est que la deuxième méthode crée spécifiquement un nom pour la contrainte et que la première méthode en a un généré par SQL Server?

ALTER TABLE [Common].[PropertySetting] ADD DEFAULT ((1)) FOR [Active];
ALTER TABLE [Common].[PropertySetting] ADD CONSTRAINT [DF_PropertySetting_Active) DEFAULT ((1)) FOR [Active];
78
Randy Minder

À peu près, oui pour une ALTER TABLE

Vous pouvez également ajouter une colonne par défaut en une seule étape pour CREATE ou ALTER.

ALTER TABLE foo ADD bar varchar(100) CONSTRAINT DF_Foo_Bar DEFAULT ('bicycle')
ALTER TABLE foo ADD bar varchar(100) DEFAULT ('bicycle')

Comme vous l'avez noté, le système génère un nom s'il n'est pas fourni. CONSTRAINT constraint_name est facultatif, dit MSDN. La même chose s'applique à tout colonne ou table CONTRAINTE

Modifier Si la colonne a déjà été créée et que vous souhaitez uniquement ajouter la contrainte, utilisez:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName;
98
gbn