ここから開始:http://www.sommarskog.se/error_handling_2005.html
一部のエラーはセッションターミネータであり、バッチターミネータでさえあり、それらをトラップできないことに注意してください
私があなたに与えたリンク(そしてそのページの2つのリンク)はあなたにこれを処理する方法についての十分な情報を与えるはずです
ところで、トラップできないエラーでない限り、実行を継続します
これを実行します
declare @rowcount int, @sql nvarchar(100)
set @rowcount = 1
while @rowcount < 10
begin
set @sql = 'select * from <Remotemachine>.db1.dbo.table1'
exec sp_executesql @sql
print @rowcount
set @rowcount = @rowcount +1
End
これが出力です
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
1
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
2
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
3
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
4
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
5
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
6
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
7
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
8
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
9
TRY CATCH
これをトラップするために使用できる方法は次のとおりです
declare @rowcount int, @sql nvarchar(100)
set @rowcount = 1
while @rowcount < 10
begin
set @sql = 'select * from <Remotemachine>.db1.dbo.table1'
begin try
exec sp_executesql @sql
end try
begin catch
select ERROR_MESSAGE() -- or do something
end catch
print @rowcount
set @rowcount = @rowcount +1
End