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];
À 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;