動的SQLバックアップコマンドにtry / catchを使用するときにエラーの詳細をログに記録する方法
try catchと動的SQLを使用するストアドプロシージャ内でバックアップコマンドを発行する場合、バックアップコマンドを直接実行する場合と比較すると、エラーメッセージは非常に一般的です。 SP内で試行/キャッチ: begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); -- save to log, etc. end catch 結果 50000:usp_Backup:117:BACKUP DATABASEが異常終了しています。 rawコマンドを発行するwheareas: backup DATABASE someDb to disk... より詳細な結果: ルックアップエラー-SQL Serverデータベースエラー:ファイル "H:\ FolderName \ Filename.bak:" 112で回復不可能なI / Oエラーが発生しました(ディスクに十分なスペースがありません。) これらの詳細をストアドプロシージャ内の変数にキャッチする方法はありますか(ログを記録し、呼び出し元にパスバックし、ロジックを再試行します)?詳細はメッセージチャネルで送信されているようですが、SP内で利用できるようにしたいと思います。