Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 在一个带有参数的sql任务中可以有多个update语句吗?_Ssis - Fatal编程技术网

Ssis 在一个带有参数的sql任务中可以有多个update语句吗?

Ssis 在一个带有参数的sql任务中可以有多个update语句吗?,ssis,Ssis,我可以在一个sql任务中放入多个语句吗?第二个语句会使用第四、第五和第六个参数值吗?我真的不想为这样的东西创建一个存储过程,我更希望只有一个sql任务而不是两个 参数1参数2参数3参数4参数5参数6 是的,在执行SQL任务中可以有任意多个语句 如果您使用的是使用顺序位置的连接管理器,那么您应该按照问题中所示连接参数 我喜欢的一个技巧是在我的SQL语句中创建变量并填充它们。这允许我只映射一次参数,然后重用到我的核心内容。例如,假设状态值参数2被分配给第一个和第二个语句 DECLARE

我可以在一个sql任务中放入多个语句吗?第二个语句会使用第四、第五和第六个参数值吗?我真的不想为这样的东西创建一个存储过程,我更希望只有一个sql任务而不是两个

参数1
参数2
参数3
参数4
参数5
参数6


是的,在执行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语句。

@bitshift在编写SSIS SQL命令时始终遵循此技巧,这样更易于维护和知道哪个参数会用到哪里。
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;