您好,我有一些存储过程可以在我的网站上创建产品和其他内容。现在我必须在事务中运行其中一些。这可能吗,还是我必须仅为事务创建一个存储过程?
我可以说类似的话吗
BEGIN TRAN
"1. stored procedure"
"2. stored procedure"
COMMIT
最佳答案
要添加上面的其他答案,您可能需要添加一些错误处理:
BEGIN TRAN
BEGIN TRY
EXEC P1
EXEC P2
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
<小时/>
使用 C# 代码进行更新(我个人发现将转码保留在存储过程之外和数据层中要容易得多 - 使得稍后阶段更容易编写存储过程):
using (var conn = new SqlConnection(...))
trans = conn.BeginTransaction();
try
{
...call P1 using transaction
...call P2 using transaction
trans.Commit();
}
catch
{
trans.RollBack();
throw;
}
}
关于sql-server - SQL Server : stored procedure transaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032890/