Sup*_*ell 6 c# sql sql-server timeout sqlcommand
如果我使用SqlCommand运行存储过程并且SqlCommand超时,StoredProc会继续执行还是在SqlCommand断开连接时强行退出?
我的直觉告诉我该程序仍会执行,因此我进行了一个简单的测试。
SQL:
Create Procedure TestDelay
AS
waitfor delay '00:00:40'
update table_1
set dt = getdate()
Run Code Online (Sandbox Code Playgroud)
在 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
Run Code Online (Sandbox Code Playgroud)
结果? 超时后该过程未完成。 我检查了 SQL 探查器中的跟踪期间发生的情况,并且确实 SQL 似乎将调用包装在事务中,并且必须在超时时回滚该事务。
注意:此测试是针对 SQL 2005 运行的,但我怀疑其他版本的结果类似。
| 归档时间: |
|
| 查看次数: |
2255 次 |
| 最近记录: |