2010-11-29 3 views
64

Il semble y avoir au moins deux façons d'ajouter une contrainte par défaut à l'aide de T-SQL direct. 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 la première méthode en a une générée par SQL Server?Commande d'ajout d'une contrainte par défaut

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

Répondre

85

Quasiment, oui pour une commande ALTER TABLE

Vous pouvez ajouter un columnn par défaut en une seule étape pour CREATE ou ALTER aussi.

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. Le même pour tout column ou table CONTRAINTE

Modifier Si la colonne a déjà été créé, et que vous voulez ajouter l'utilisation de la contrainte:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName; 
+2

Puis-je utiliser un nom généré au lieu de 'DF_Foo_Bar ', même si la colonne existe déjà? – slartidan

Questions connexes