SQL Server 2005 使用 GETDATE() 作为参数通过 SSIS 运行存储过程
Posted
技术标签:
【中文标题】SQL Server 2005 使用 GETDATE() 作为参数通过 SSIS 运行存储过程【英文标题】:SQL Server 2005 Run a stored procedure via SSIS using GETDATE() as a Parameter 【发布时间】:2012-02-17 20:29:20 【问题描述】:我一直在寻找这个问题的答案,但找不到。我想使用 Visual Studio 2005 和 SQL Server 2005 设置一个 SSIS 包,它将今天的日期 (GETDATE()) 作为参数发送到存储过程。我可以找到如何发送参数,但不知道如何将该参数声明为 GETDATE()。这甚至可能吗?
【问题讨论】:
如果你真的需要将GETDATE()
作为参数传递给你的存储过程,你可以直接使用GETDATE()
执行SQL查询,而不是先将它分配给参数
@Lamak,我实际上有几个不同的存储过程,它们都需要今天的日期,我希望只在 SSIS 中创建一个变量,并在它们运行时将其传递给它们。我只是不知道该怎么做才能让一个人转移到其他人身上。
【参考方案1】:
如果您需要持续评估时间,例如 GETDATE(),请在 SSIS 中创建一个名为 GetDate
的变量,其数据类型为 DateTime。右键单击并在属性窗口上,检查 EvaluateAsExpression = True 和表达式,使用 GETDATE()
现在将该变量连接到执行 SQL 任务。
如果您不需要这一刻,请考虑使用系统范围变量之一。 Execute SQL Task 的ContainerStartTime
可能就足够了。我最看重的是StartTime
,因为那是包开始执行的时间,但你会最清楚哪一个最适合你。
【讨论】:
【参考方案2】:要考虑的一种可能的解决方法。您可以将 GETDATE() 设置为存储过程中参数的默认值,然后在不使用该参数的情况下调用它。
CREATE PROCEDURE YourProc
@InputDate DATETIME = GETDATE()
AS
...
【讨论】:
以上是关于SQL Server 2005 使用 GETDATE() 作为参数通过 SSIS 运行存储过程的主要内容,如果未能解决你的问题,请参考以下文章
使用存储过程将记录从 SQL Server 复制到 SQL Server (2005)
如何用SQL SERVER 2005连接SQL SERVER 2008
仅使用 SQL 将图片插入 SQL Server 2005 图像字段
从 SQL Server 2005 迁移到 SQL Server 2008:强制在表名之前使用架构名