这可以在 SSIS 中通过使用 3 个Execute SQL Task
彼此不连接的不同来完成。

默认情况下,SSIS 使用Serializable
选项Isolation Level
锁定正在读取的整个数据并保持锁定直到事务完成。因此,为了并行运行查询,您需要在读取数据时将其更改Isolation level
为Snapshot
主要用于数据的。NOLOCK
更新 :-
由于获得了 stored procedures
正在执行的数量,dynamically
那么您需要创建包programitically
public void CreatePackage()
{
Package package= new Package();
ConnectionManager sqlConnection = GetSQLConnection(package,
"localhost", "Database Name");
TaskHost taskHost=null;
for(int i=0;i<GetNoOfRowFromSQL();i++)
{
CreateDynamicTask(package);
}
package.Execute();
}
public void CreateDynamicTask(package Package)
{
//Add the Execute SQL Task
package.Executables.Add("STOCK:SQLTask");
taskHost = package.Executables[0] as TaskHost;
taskHost.Properties["SqlStatementSource"].SetValue(taskHost,
"EXECUTE Stored Proc);
//Setting the Isolation Level
taskHost.Properties["IsolationLevel"].SetValue(taskHost, 1048576);
//the number signify 1048576 =Serializable
}
}