この質問と同様の問題があります。SQLServer2005でリンクサーバーを使用してキャッチを試してください。
私はこのtrycatchを実行しています:
Declare @command nvarchar(100)
SET @command = 'SELECT column FROM table'
BEGIN TRY
BEGIN TRY
exec ' + @Server_Name + @DB_name + '.dbo.sp_executesql @command
END TRY
BEGIN CATCH
PRINT EXCEPTION
END CATCH
独自のストアドプロシージャを実行していないため、使用できないと思いRAISEERROR
ます。単純なselectステートメントのみを実行しています。使用してみまし@@ERROR
たが、リンクサーバーでも機能しません。取得するエラーは20未満であるため、次の問題が発生します。
リモートストアドプロシージャが重大度20未満のRAISERRORを呼び出し、リモートストアドプロシージャのスコープがローカルサーバーのTRYブロック内にある場合、RAISERRORによって制御がTRY…CATCH構造のCATCHブロックに渡されることはありません。
http://msdn.microsoft.com/en-us/library/ms191515.aspx
私はこの質問を見つけました:リンクされたサーバーから返されたエラーメッセージをキャプチャする方法は?どちらも答えられていません。