2010-07-22 6 views
5

Je n'arrive pas à obtenir la syntaxe GETDATE() pour fonctionner dans une étape de travail de type Transact-Sql Script. Je mets dans la commande comme:GETDATE() dans un travail T-SQL Étape Commande

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

Mais je reçois une erreur « syntaxe incorrecte près «) » » lors de l'analyse ou d'essayer de l'exécuter. Des pensées?

Répondre

7

Essayez ceci:

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

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

Vous ne pouvez pas utiliser GETDATE() en fonction en ligne tout en appelant une procédure.

+0

En plus de Florian: Faites attention que getdate() - 1 ne signifie pas hier (comme getdate a aussi un composant time) – Tobiasopdenbrouw

+0

Thanks Flo! Apprendre quelque chose de nouveau chaque jour. Je suis un peu ennuyé qu'aucun de mes googlings ne se soit retourné :) –

+1

@C Bauer Très bienvenue :-); et s'il vous plaît noter également les informations très importantes de Tobiasopdenbrouw. Comme une deuxième extension: Avec SS2k8, nous devrions tous commencer à utiliser DATETIME2 et SYSDATETIME() et se débarrasser de DATETIME et GETDATE(). –

1

Vous pouvez essayer quelque chose comme ça,

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

exec insertMostRecentUpdate 'data',@date 

Suprise moi quand je courais, a pensé que je devrais compiler, mais je pense que ce parce que vous passez une fonction dans votre proc