Comando para agregar una restricción predeterminada

81

Parece haber al menos dos formas de agregar una restricción predeterminada utilizando T-SQL directo. ¿Tengo razón en que la única diferencia entre los dos siguientes es que el segundo método crea específicamente un nombre para la restricción, y el primer método tiene uno generado por SQL Server?

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

Respuestas:

104

Básicamente, sí para ALTER TABLE

También puede agregar una columna con el valor predeterminado en un paso para CREAR o ALTERAR.

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

Como señaló, el sistema genera un nombre si no se proporciona uno. CONSTRAINT constraint_namees opcional dice MSDN. Lo mismo se aplica a cualquier columna o tabla RESTRICCIÓN

Editar Si la columna ya se creó y solo desea agregar la restricción, use:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName;
gbn
fuente
3
¿Puedo usar un nombre generado en lugar de DF_Foo_Bar, incluso si la columna ya existe?
slartidan