87 votes

Commande pour ajouter une contrainte par défaut

Il semble qu'il existe au moins deux façons d'ajouter une contrainte par défaut en utilisant directement le langage T-SQL. Ai-je raison de penser que la seule différence entre les deux méthodes ci-dessous est que la seconde crée spécifiquement un nom pour la contrainte, alors que la première méthode en génère un par le serveur SQL ?

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

116voto

gbn Points 197263

A peu près, oui pour un ALTER TABLE

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

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 si aucun n'est fourni. CONSTRAINT constraint_name est facultatif selon MSDN. Il en va de même pour tout colonne ou tableau CONSTRAINT

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

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

3 votes

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X