2010-06-17 24 views
31

Tengo una columna existente en mi base de datos de SQL Server. He intentado todo lo que puedo pensar pero no puedo obtener un valor predeterminado para agregar a la columna. Lo que funciona en cualquier otra base de datos es¿Cómo agregar un valor predeterminado a una columna ya existente?

alter table mytable 
    alter column mycolumn set default(now()) --mycolumn is a datetime 

¿Cómo hago esto en SQL Server?

El error que consigo para que la sintaxis exacta es incorrect syntax near the keyword 'set'

Respuesta

63

Uso:

ALTER TABLE dbo.mytable 
ADD CONSTRAINT def_mycolumn DEFAULT GETDATE() FOR mycolumn 

Para obtener más información, consulte: Working with Default Constraints

+1

Agregado el 'por' poco para usted .. – Earlz

+0

@Earlz: Vi eso, más apreciado :) –

+0

ahora solo tengo que esperar 3 minutos más ... – Earlz

6

Si desea cambiar el valor predeterminado de una ya existente columna. Es necesario dejar caer primero la restricción y luego añadir la restricción de nuevo de la siguiente manera

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME> 

ALTER TABLE <TABLE> 
ADD CONSTRAINT <CONSTRAINT NAME> DEFAULT <VALUE> for <COLUMN> 

Si usted no está teniendo los detalles de restricción de la tabla, puede utilizar la siguiente consulta

sp_helpconstraint <TABLE> 
Cuestiones relacionadas