以前、次の投稿を書きました。
これらの投稿では、「アプリケーションからのクエリタイムアウト (コマンドタイムアウト)」を SQL Server 側 (DB サーバーサイド) で取得する方法について記載を行いました。
(本ブログでも何回か書いていますが、クエリのタイムアウトは「アプリケーションから発行された Attention のメッセージにより、SQL Server がクエリをキャンセルする処理」ですので、クエリをタイムアウトさせているのは、SQL Server ではなく、クエリを発行したアプリケーション側の処理となります)
SQL Server に対してクエリを実行する際に発生するのは、クエリタイムアウトだけでなく、様々なエラーがあります。
本投稿では、クエリタイムアウト以外のエラーを SQL Server 側で取得する方法の一例について紹介したいと思います。
クエリのタイムアウトや、クエリの実行の失敗については、クエリ実行側 (アプリケーション側) で取得した方が正確かと思いますので、SQL Server で全てをキャッチするのではなくアプリケーション (または、APM のような仕組み) でエラーを把握した方が良いと思います。
(DB に対してのクエリ実行でエラーが発生すると、SQL Server 側の調査のみで原因を特定してくれという依頼が多いのですよね…。)