Sql server SSIS中的条件执行SQL任务
我的SSIS包中有一个Sql server SSIS中的条件执行SQL任务,sql-server,ssis,etl,sql-server-data-tools,Sql Server,Ssis,Etl,Sql Server Data Tools,我的SSIS包中有一个executeSQL任务,只有当某个条件为真时,它才应该执行SQL存储过程 我有一个用户变量[user::run],它在包启动时获取一个值。在我的SQL任务中,我有以下代码: declare @run varchar(1) set @run = '" + @[User::run] + "' if @run = 'Y' begin EXEC sp_procedure() end 但是,存储过程永远不会执行。非常感谢您提供的任何帮助或建议。如果您不动态设置[User::run
executeSQL任务
,只有当某个条件为真时,它才应该执行SQL存储过程
我有一个用户变量[user::run]
,它在包启动时获取一个值。在我的SQL任务中,我有以下代码:
declare @run varchar(1)
set @run = '" + @[User::run] + "'
if @run = 'Y'
begin
EXEC sp_procedure()
end
但是,存储过程永远不会执行。非常感谢您提供的任何帮助或建议。如果您不动态设置[User::run]变量,而是手动设置该变量,该怎么办。那么它执行程序了吗?如果是,您知道设置变量有问题,如果不是,则您知道这与任务有关 您想使用if语句来尝试和执行该过程是否有特定的原因?我推荐两个优先约束。一个指向作业的结尾,可能是一封电子邮件,说明作业已完成,并记录任何结果。另一个指向存储过程 例如,一个优先约束将从第一步连接到第二步,第二步是exec t-sql。连接器属性如下所示,用于评估变量设置是否正确,然后它将流向您的T-SQL任务 下面是另一个连接器也将设置为的内容,它将流向另一个任务,一个将结束ssis包的任务 刚刚设置好
@run = @[User::run]
不要添加双引号。这看起来像一个表达式,而不是sql 打开
执行SQL任务
,转到表达式
选项卡,将表达式添加到SqlStatementSource
"declare @run varchar(1)
set @run = '" + @[User::run] + "'
if @run = 'Y'
begin
EXEC sp_procedure()
end"
“您可以使用表达式将参数值连接到查询字符串中,并设置任务的SqlStatementSource属性。”谢谢Hadi。成功了。