2010-06-17 29 views
31

Ho una colonna esistente nel mio database SQL Server. Ho provato su tutto quello che posso pensare, ma non posso ottenere un valore predefinito da aggiungere alla colonna. Ciò che funziona in ogni altro database èCome aggiungere un valore predefinito a una colonna già esistente?

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

Come si esegue questa operazione in SQL Server?

L'errore che ottengo per che la sintassi esatta è incorrect syntax near the keyword 'set'

risposta

63

Usa:

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

Per ulteriori informazioni, consultare: Working with Default Constraints

+1

Aggiunta la 'per' un po 'per te .. – Earlz

+0

@Earlz: Visto che, più apprezzato :) –

+0

ora devi solo aspettare altri 3 minuti ... – Earlz

6

Se si desidera modificare il valore predefinito di una già esistente colonna. È necessario eliminare prima il vincolo e quindi aggiungere il vincolo tutto da capo, come di seguito

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME> 

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

Se non si hanno i dettagli vincolo della tabella, è possibile utilizzare la query di seguito

sp_helpconstraint <TABLE> 
Problemi correlati