gpt4 book ai didi

c# - 连接关闭时是否可以在 c# 中检索当前的 SQL 事务?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:56 25 4
gpt4 key购买 nike

连接关闭时是否可以在 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?
}

最佳答案

SqlTransaction.Save 不会“保存”事务,而是创建一个事务保存点,这是完全不同的:

Creates a savepoint in the transaction that can be used to roll back a part of the transaction, and specifies the savepoint name.



可以在事务提交之前使用保存点来部分回滚事务完成的一些工作。一个典型的例子是尝试进行可能失败的更新,因此您在进行更新之前创建一个保存点,并在失败的情况下回滚到保存点,从而保留在保存点之前完成的所有工作。

Exception handling and nested transactions有关如何使用保存点的示例。

现在回到你的问题,有没有办法让连接开始连接,关闭,当重新打开时,拿起相同的交易?从技术上讲,通过使用(现已弃用) sp_getbindtoken sp_bindsession .但这只是一个好奇心,绝对没有有效的场景让您尝试跨两个不同的 session “重用”事务(两次重新打开连接)。

关于c# - 连接关闭时是否可以在 c# 中检索当前的 SQL 事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6469791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com