Jer*_*ald 1 c# sql database-connection transactions
连接关闭时,是否可以在c#中检索当前的SQL事务?
sqlTransaction.Save("savePoint");
sqlConnection.Close() // im purposely closing it to test
if (sqlConnection.State == ConnectionState.Close)
{
sqlConnection.Open():
// is it possible to resume the sql transaction when I re-open
// the sql connection? how?
}
Run Code Online (Sandbox Code Playgroud)
SqlTransaction.Save不会“保存”事务,而是创建一个事务保存点,这是完全不同的东西:
在事务中创建一个保存点,可用于回滚事务的一部分,并指定保存点名称。
可以在事务提交之前使用保存点来部分回滚事务完成的一些工作。一个典型的示例是尝试执行可能会失败的更新,因此您在执行更新之前创建一个保存点,并且在失败时回滚到该保存点,从而保留在该保存点之前完成的所有工作。
有关如何使用保存点的示例,请参阅异常处理和嵌套事务。
现在回到你的问题,有没有办法让连接启动连接、关闭连接,并在重新打开时获取相同的事务?从技术上讲,通过使用(现已弃用)sp_getbindtoken和sp_bindsession. 但这只是一个好奇心,绝对没有有效的场景让您尝试在两个不同的会话(连接的两次重新打开)之间“重用”事务。
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |