2012-02-17 81 views
1

我一直在寻找对此的答案,我无法找到它。我想使用Visual Studio 2005和SQL Server 2005建立一个SSIS包,将今天的日期(GETDATE())作为参数发送到存储过程。我可以找到如何发送参数,但不知道如何声明该参数为GETDATE()。这甚至有可能吗?SQL Server 2005使用GETDATE()作为参数通过SSIS运行存储过程

+1

如果你真的需要通过'GETDATE()'作为参数传递给您的存储过程,你可以直接执行SQL查询它'GETDATE()',而不是将其分配给一个参数第一 – Lamak 2012-02-17 20:37:35

+0

@Lamak ,我实际上有几个不同的存储过程,都需要今天的日期,我希望在SSIS中创建一个变量,并在运行时将它们传递给所有变量。我只是无法弄清楚如何为一个人转向其他人。 – DataGirl 2012-02-17 21:15:45

回答

3

如果您需要持续评估时间,例如GETDATE(),那么请在数据类型为DateTime的情况下在SSIS中创建名为GetDate的变量。右键单击并在属性窗口中,检查EvaluateAsExpression = True和表达式,使用GETDATE()

现在将该变量连接到执行SQL任务。

如果您不需要这一刻,请查看使用系统范围变量之一。执行SQL任务的ContainerStartTime可能就足够了。我的价值是StartTime,就像包开始执行时那样,但你会知道哪一个最适合你。

2

要考虑的一种可能的解决方法。您可以使GETDATE()成为存储过程中参数的默认值,然后在没有该参数的情况下调用它。

CREATE PROCEDURE YourProc 
    @InputDate DATETIME = GETDATE() 
AS 
...