我可以在带有参数的单个sql任务中有多个更新语句吗?

时间:2018-06-14 20:56:52

标签: ssis

我可以在sql任务中放置多个语句吗?第二个语句是否会使用第4,第5和第6个参数值?我真的不想为这样的东西创建一个存储过程,而且还只需要一个sql任务而不是两个

  

param1
param2
param3
param4
param5
param6

UPDATE dbo.WhInvoice SET Bal = ?, [Status] = ? WHERE ID = ?
UPDATE dbo.WhInvoice SET Bal = ?, [Status] = ? WHERE ID = ?

1 个答案:

答案 0 :(得分:2)

是的,您可以根据需要在执行SQL任务中包含尽可能多的语句。

如果您使用的是使用序号位置的连接管理器,则可以按照问题所示连接参数。

如果您愿意,我喜欢的一个技巧是在我的SQL语句中创建变量并填充它们。这使我只能将参数映射一次,然后重复使用我心中的内容。例如,让我们假设状态值,参数2分配给第一个和第二个语句。

DECLARE 
     @Bal1 decimal(18,2) = ?, @Status varchar(30) = ?, @id1 int = ?
,    @Bal2 decimal(18,2) = ?, @id2 int = ?;

UPDATE dbo.WhInvoice SET Bal = @Bal1, [Status] = @Status WHERE ID = @id1;
UPDATE dbo.WhInvoice SET Bal = @Bal2, [Status] = @Status WHERE ID = @id2;

现在,我只需传入5个参数而不是6个。它还可以更轻松地测试数据库中的逻辑,因为您只需要修复"它的第一部分是有效的SQL语句。