Chad Baldwin hits on an interesting result when using THROW across a linked server:
The
THROW
command is non-terminating if it is used in a stored procedure over a linked-server.I don’t know the details to why it works this way. The
THROW
command returns an error message with a severity level of 16, which, according to my RAISERROR Cheatsheet, does not stop execution.There’s something special about the
THROW
command beyond raising an error message. Behind the scenes, there is likely some extra information being passed to tell SQL Server that execution needs to stop in that moment, and that extra bit of information does not appear to be passed between linked servers.
Click through for a demo.