SqlCommandとSqlCommandを使用してストアドプロシージャを実行すると、StoredProcが実行を継続するか、SqlCommandが切断されたときに強制的に強制終了しますか?ストアドプロシージャとSqlCommandタイムアウト
6
A
答えて
3
私の本能は、手続きがまだ実行されると言っているので、私は簡単なテストを一緒に投げました。
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に対して実行されましたが、他のバージョンでも同様の結果が得られると思われます。
1
brendanが述べたように、クライアントは「中断」を送信し、処理は停止します。それと同じくらい簡単です。接続が閉じられるまで、しかし、それはそれよりもっと複雑だ...
どれでも取引がデフォルトとロックでロールバックされません
はただそこに残されています。接続プールに戻されて再利用された場合、はが終了としてカウントされません。
SET XACT_ABORT ON
(他の質問SO1、SO2)は、少なくともバックSQL 7に、
関連する問題
- 1. タイムアウト - ストアドプロシージャ
- 2. DataReaderとSQLCommand
- 3. sqlCommand、プログラムでストアドプロシージャのパラメータを取得して設定する
- 4. SqlCommandオブジェクト
- 5. SqlCommand C#
- 6. SqlConnection SqlCommand SqlDataReader IDisposable
- 7. SqlCommandオブジェクトCommandTimeoutプロパティ
- 8. SqlCommandオブジェクトAddWithValue
- 9. SqlCommandまたはSqlDataAdapter?
- 10. SqlCommandパラメーターの追加とAddWithValueの比較
- 11. SQL Azureのストアドプロシージャでタイムアウトを増やすには
- 12. ストアドプロシージャがASPページで断続的にタイムアウトします
- 13. SQL Serverストアドプロシージャのエラー、タイムアウト時間が経過しました
- 14. SqlCommandオブジェクトのasp.net C#が
- 15. SqlCommandオブジェクト、C#の発行
- 16. SqlCommandのパラメータの明確化
- 17. 名前なしパラメータをSqlCommand(ADO.NET)を介してストアドプロシージャに渡す方法はありますか?
- 18. マルチスレッドアプリケーションのストアドプロシージャ - タイムアウトが切れています。前にタイムアウト時間が経過しました
- 19. ネイティブクエリとストアドプロシージャとORM
- 20. リポジトリパターンとストアドプロシージャ
- 21. TPLタスクとストアドプロシージャ
- 22. TSQL:ストアドプロシージャとROWLOCK
- 23. SQLジョブとストアドプロシージャ
- 24. ストアドプロシージャとトリガー
- 25. nHibernate - ストアドプロシージャとコンポジットキー
- 26. ストアドプロシージャとPHPフォーム
- 27. SqlConnection.CreateCommandと新しいSqlCommandの違いはありますか?
- 28. SqlCommand C#でNameValueCollectionを渡す方法は?
- 29. SqlCommand(CommandType Text)がパラメータコレクションを取得する
- 30. sql-maven-plugin sqlCommandでシングルクォートをエスケープ
正しいをお勧めします理由です – gbn