我的 ExecuteSQL 任务中有多个 UPDATE 语句。每个都依赖于一个变量,例如 MyId
UPDATE TABLE_A SET COL_A={Something} WHERE ID=?
UPDATE TABLE_B SET COL_B={SomeTHing} WHERE ID=?
此查询将 MyId 变量作为参数。
我是否需要与我的更新语句一样多的参数或者有一种方法可以one
在我的 ExecuteSQL 任务中定义共享参数
我的 ExecuteSQL 任务中有多个 UPDATE 语句。每个都依赖于一个变量,例如 MyId
UPDATE TABLE_A SET COL_A={Something} WHERE ID=?
UPDATE TABLE_B SET COL_B={SomeTHing} WHERE ID=?
此查询将 MyId 变量作为参数。
我是否需要与我的更新语句一样多的参数或者有一种方法可以one
在我的 ExecuteSQL 任务中定义共享参数
试试这个:
DECLARE @id int
SELECT @id = ?
UPDATE TABLE_A SET COL_A={Something} WHERE ID=@id
UPDATE TABLE_B SET COL_B={Something} WHERE ID=@id
另一种选择是将连接管理器从 OLE 更改为 ADO.NET 提供程序类型。ADO.NET 连接管理器使用命名参数代替,?
因此您可以重复使用它们而不是处理映射选项卡中的序数位置。我们经常有 2 个指向同一个数据库,一个用于数据流类型组件的 OLE 和一个用于执行 SQL 任务的 ADO.NET。
UPDATE TABLE_A SET COL_A={Something} WHERE ID=@id;
UPDATE TABLE_B SET COL_B={SomeTHing} WHERE ID=@id;