C# 如何在foreach循环中调用多个存储过程时实现类似于事务的逻辑
我有类似于下面的代码,其中我需要循环多个存储过程,并独立执行每个存储过程。我的要求是,如果任何存储过程抛出异常,我也需要回滚其他存储过程的操作 我们已经在每个存储过程中实现了事务,它将只回滚特定存储过程操作中的数据 如果任何存储过程引发异常,我还想回滚其他存储过程操作 我该怎么做C# 如何在foreach循环中调用多个存储过程时实现类似于事务的逻辑,c#,sql,asp.net,asp.net-core,C#,Sql,Asp.net,Asp.net Core,我有类似于下面的代码,其中我需要循环多个存储过程,并独立执行每个存储过程。我的要求是,如果任何存储过程抛出异常,我也需要回滚其他存储过程的操作 我们已经在每个存储过程中实现了事务,它将只回滚特定存储过程操作中的数据 如果任何存储过程引发异常,我还想回滚其他存储过程操作 我该怎么做 var multipleProcNamesList = new List<string>(); multipleProcNamesList.Add("Usp_InsertData"); multipleP
var multipleProcNamesList = new List<string>();
multipleProcNamesList.Add("Usp_InsertData");
multipleProcNamesList.Add("Usp_DeleteData");
multipleProcNamesList.Add("Usp_UpdateData");
foreach (string procName in multipleProcNamesList)
{
// sending this current procedure to azure logic app for call respective stored procedure
}
var multipleProcNamesList=new List();
添加(“Usp_InsertData”);
multipleProcNameList.Add(“Usp_DeleteData”);
添加(“Usp_UpdateData”);
foreach(multipleProcNamesList中的字符串procName)
{
//将此当前过程发送到azure logic app以调用相应的存储过程
}
此处的可能重复我没有使用SqlCommand,而是通过http调用通过逻辑应用程序调用存储的proc。如果您无法直接访问该proc,则无法回滚它。你需要修改逻辑应用程序。要么这样,要么你修改SQL,这样你就有了一个主存储过程,它调用所有其他的主存储过程,并将这些调用封装在主存储过程中的事务中。@ADyson,我也有同样的想法。我现在就用主存储过程。