saa*_*dan 22 sql-server stored-procedures transactions
您好我有一些存储过程来在我的网站上创建产品和其他东西.现在我必须在一个事务中运行它们中的一些.这是可能的还是我必须只为事务制作存储过程?
我能说些什么吗?
BEGIN TRAN
"1. stored procedure"
"2. stored procedure"
COMMIT
Run Code Online (Sandbox Code Playgroud)
Pad*_*ddy 42
要添加上面的其他答案,您可能需要添加一些错误处理:
BEGIN TRAN
BEGIN TRY
EXEC P1
EXEC P2
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
Run Code Online (Sandbox Code Playgroud)
使用C#代码更新(我个人觉得将代码保留在sprocs和数据层之外要容易得多 - 使得后续阶段的存储过程更容易编写):
using (var conn = new SqlConnection(...))
trans = conn.BeginTransaction();
try
{
...call P1 using transaction
...call P2 using transaction
trans.Commit();
}
catch
{
trans.RollBack();
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53628 次 |
最近记录: |