The title really is the question for this one: Is there an equivalent in T-SQL to C#’s “throw;” to re-throw exceptions?
In C# one can do this:
try
{
DoSomethingThatMightThrowAnException();
}
catch (Exception ex)
{
// Do something with the exception
throw; // Re-throw it as-is.
}
Is there something in T-SQL’s BEGIN CATCH functionality that does the same?
You can use RAISERROR. From the MSDN documentation on RAISERROR:
EDIT:
This is not really the same thing as c#’s
throworthrow ex. As @henrikstaunpoulsen points out you don’t get the original error number in the new error (RAISERROR is restricted in which numbers it can use). You would have to use some sort of convention and parse the information (if available) out of the message.MSDN has an article Using TRY…CATCH in Transact-SQL and I used some of the code to create the test below:
Which produces the following output: