2010-07-22 13 views
5

Nie można uzyskać składni GETDATE() do pracy w kroku zadania typu Transact-Sql Script. I umieścić w poleceniu jako:GETDATE() w poleceniu Kroku zadań T-SQL

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

ale pojawia się „Niepoprawna składnia w pobliżu«)»” błąd podczas analizowania lub próbuje go uruchomić. jakieś pomysły?

Odpowiedz

7

Spróbuj tego:

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

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

Nie można używać GETDATE() jako inline-funkcji podczas wywoływania procedury.

+0

oprócz Florian: Bądź ostrożny, że getdate() - 1 nie ma znaczenia wczoraj (ponieważ getdate ma również składnik czasu) – Tobiasopdenbrouw

+0

Dzięki Flo! Naucz się czegoś nowego każdego dnia. Jestem trochę zirytowany, że żadne z moich googlowań nie zmieniło tego :) –

+1

@C Bauer Bardzo mile widziane :-); i proszę również zauważyć bardzo ważne informacje @ Tobiasopdenbrouw. Jako drugie rozszerzenie: przy SS2k8 wszyscy powinniśmy zacząć używać DATETIME2 i SYSDATETIME() i pozbyć się DATETIME i GETDATE(). –

1

Można spróbować coś takiego,

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

exec insertMostRecentUpdate 'data',@date 

Suprise mnie, kiedy biegł, pomyślałem, że powinien skompilować, ale myślę, że jego ponieważ są przechodzącą funkcję w swojej proc