2010-07-22 2 views
5

Я не могу заставить синтаксис GETDATE() работать на этапе задания типа Transact-Sql Script. Я поставил в команде как:GETDATE() в команде шагов задания T-SQL

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

Но я получаю «неправильный синтаксис около„)“» ошибка при обработке или попытке запустить его. Есть предположения?

ответ

7

Попробуйте это:

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

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

Вы не можете использовать GETDATE() в инлайн-функции во время вызова процедуры.

+0

В дополнение к Флориана: Будьте осторожны, что getdate() - 1 не означает вчера (поскольку getdate также имеет компонент времени) – Tobiasopdenbrouw

+0

Thanks Flo! Узнавайте что-то новое каждый день. Я немного недоволен тем, что ни один из моих поисковых запросов не изменил это :) –

+1

@ C Bauer Очень приветствуется :-); и, пожалуйста, обратите внимание также на важную информацию @ Tobiasopdenbrouw. В качестве второго расширения: С SS2k8 мы все должны начать использовать DATETIME2 и SYSDATETIME() и избавиться от DATETIME и GETDATE(). –

1

Вы могли бы попробовать что-то вроде этого,

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

exec insertMostRecentUpdate 'data',@date 

Suprise меня, когда я бегу, подумал я должен собрать, но я думаю, что его, потому что вы передаете функцию в свой прок

Смежные вопросы