2010-07-22 11 views
5

Non riesco a ottenere la sintassi GETDATE() per lavorare in un passaggio del processo di tipo Script Transact-Sql. Ho messo nel comando come:GETDATE() in un comando di comando T-SQL Step

execute insertMostRecentUpdate 
@Data='Data', 
@Date=GETDATE()-1 

ma ottengo un "sintassi non corretta in prossimità ')'" Errore durante l'analisi o cercando di farlo funzionare. qualche idea?

risposta

7

Prova questo:

DECLARE @date DATETIME; 
SET @date = GETDATE()-1; 

execute insertMostRecentUpdate 
@Data='Data', 
@[email protected]; 

Non è possibile utilizzare GETDATE() come inline-funzione durante la chiamata di una procedura.

+0

Oltre a Florian: Fai attenzione che getdate() - 1 non significa ieri (dato che il getdate ha anche una componente temporale) – Tobiasopdenbrouw

+0

Grazie Flo! Impara qualcosa di nuovo ogni giorno. Sono un po 'infastidito dal fatto che nessuno dei miei googling abbia rivelato tutto questo :) –

+1

@C Bauer Molto gradito :-); e si prega di notare anche le informazioni molto importanti di @ Tobiasopdenbrouw. Come seconda estensione: con SS2k8 dovremmo iniziare a utilizzare DATETIME2 e SYSDATETIME() e sbarazzarci di DATETIME e GETDATE(). –

1

Si potrebbe provare qualcosa di simile,

declare @date date 
set @date = GETDATE()-1 

exec insertMostRecentUpdate 'data',@date 

me sorpresa quando mi sono imbattuto, pensato che avrei dovuto compilare, ma penso che la sua perché si sta passando una funzione nel vostro proc

Problemi correlati