Tom Ritter
Tom Ritter

Reputation: 101400

Raiseerror and Concat for the Message

I'd like to do something like this

raiserror(concat('Error in case @isFishy =', @isFishy, ' @isSmarmy=', @isSmarmy, ' @isTasty = ', @isTasty), 10, 1)
--or
raiserror('Error in case @isFishy =' + @isFishy + ' @isSmarmy=' + @isSmarmy + ' @isTasty = ' + @isTasty, 10, 1)

But it just isn't working. How do I accomplish this? I'm in SQL Server 2005.

Upvotes: 4

Views: 8686

Answers (2)

kristof
kristof

Reputation: 53854

The error message in RAISERROR has actually similar syntax to printf function in C, so assuming your arguments are of the type of integer you would need to use:

raiserror(N'Error in case @isFishy = %d @isSmarmy = %d @isTasty = %d',10,1,@isFishy,@isSmarmy,@isTasty)

check out BOL for details and other options

Upvotes: 17

Joel Coehoorn
Joel Coehoorn

Reputation: 416149

I use raiserror a lot. We have some stored procedures that are called from a .Net app each night for batch processing, and the .Net app wants to log the procedure output this way. I don't know why, but I generally have to build the string before calling raiserror.

Upvotes: 0

Related Questions