gpt4 book ai didi

c# - 存储过程和 SqlCommand 超时

转载 作者:太空狗 更新时间:2023-10-29 21:48:00 25 4
gpt4 key购买 nike

如果我使用 SqlCommand 运行存储过程并且 SqlCommand 超时,StoredProc 会继续执行还是在 SqlCommand 断开连接时强制退出?

最佳答案

我的直觉告诉我程序仍然会执行,所以我拼凑了一个简单的测试。

SQL:

Create Procedure TestDelay
AS

waitfor delay '00:00:40'

update table_1
set dt = getdate()

并且在 VB.Net 中(为此目的与 C# 相同):

    Dim con As New SqlConnection(myconnectionstring)
Dim com As New SqlCommand("TestDelay", con)
com.CommandType = CommandType.StoredProcedure
con.Open()
Try
com.ExecuteNonQuery()
Catch ex As Exception
con.Close()
Response.Write(ex.Message)
End Try

结果呢? 过程在超时后没有完成。我检查了在 SQL 事件探查器中进行跟踪期间发生的情况,并确定有足够的 SQL 似乎将调用包装在一个事务中,并且必须在超时时回滚该事务。

注意:此测试是针对 SQL 2005 运行的,但我怀疑其他版本的结果类似。

关于c# - 存储过程和 SqlCommand 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1715635/

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