2011-01-12 9 views
15

Ho una tabella chiamata sample e ha una colonna chiamata [__INSERT_DATE] che è null. Ora voglio modificare la colonna con default come getdate(). Quando ho provato quanto segue mi ha dato un errore.Default getdate per Insert date

ALTER TABLE sample 
ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL) 

Qualcuno può dirmi qual è il problema?

+1

E l'errore era ??? – Oded

+1

Qual era il messaggio di errore? – DOK

+0

Msg 156, livello 15, stato 1, riga 2 Sintassi errata accanto alla parola chiave "DEFAULT". –

risposta

22

Prova questo:

ALTER TABLE MyTable ADD CONSTRAINT 
DF_MyTable_Inserted DEFAULT GETDATE() FOR INSERT_DATE 
GO 

questo presuppone il vostro tavolo è chiamato MyTable, la colonna è INSERT_DATE, e il nome del contstraint è quello di essere DF_MyTable_Inserted

3

Prova questa:

ALTER TABLE sample ADD CONSTRAINT DF_sample___INSERT_DATE DEFAULT(GETDATE()) FOR __INSERT_DATE 
1

MSDN fornisce questo esempio:

ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation' 

che si darebbe

ALTER TABLE sample ALTER COLUMN __INSERT_DATE SET DEFAULT GETDATE() 
+0

Mi ha fornito il seguente errore Msg 156, livello 15, stato 1, riga 2 Sintassi errata accanto alla parola chiave "SET". –

+0

@ Sam Come potrebbe una cosa così semplice essere così complicata !? Abbiamo il nome e il tipo di dati corretti per la colonna Inserisci data? È un datetime, non un varchar o qualcos'altro? – DOK

1

ALTER TABLE sample ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL)

Hai uno troppe parentesi di chiusura della dichiarazione di cui sopra. Ci sono 2 di questi -> (ma 3 di questi ->)

0

ero in grado di farlo utilizzando SSManagement Studio

Setting default in SSMS - Screen Shot

rendere il campo data non annullabile, poi dalle proprietà set defalut Valore o associazione a getdate()