2010-07-22 21 views
5

Parece que no puedo obtener la sintaxis GETDATE() para trabajar en un paso de trabajo de tipo Script Transact-Sql. Pongo en el comando como:GETDATE() en un comando de paso de trabajo T-SQL

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

Pero consigo una "sintaxis incorrecta cerca de ')'" error al analizar o tratar de ejecutarlo. ¿Alguna idea?

Respuesta

7

Prueba esto:

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

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

No se puede utilizar como GETDATE() cilindros en línea, mientras que la función de llamar a un procedimiento.

+0

Además de Florian: Tenga cuidado de que getdate() - 1 no signifique ayer (ya que getdate tiene un componente de tiempo también) – Tobiasopdenbrouw

+0

Thanks Flo! Aprenda algo nuevo cada día. Estoy un poco molesto por el hecho de que ninguno de mis Google lo haya contestado :) –

+1

@C Bauer Muy bienvenido :-); y también tenga en cuenta la información muy importante de @ Tobiasopdenbrouw. Como segunda extensión: con SS2k8 todos deberíamos comenzar a usar DATETIME2 y SYSDATETIME() y deshacernos de DATETIME y GETDATE(). –

1

Usted podría intentar algo como esto,

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

exec insertMostRecentUpdate 'data',@date 

sorpresa cuando me encontré, pensé que debería compilar, pero creo que es porque estás pasando a una función en su proc

Cuestiones relacionadas