Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to display error message generated from raiserror() with SQL Server

I am interacting with SQL Server 2005 from a jsp via JDBC (this is an assignment not a real project) and I have created a trigger in the database I am using. If a certain condition is not met when this trigger executes I raise an error via raiserror(). I would like this error to be displayed on the actual page that calls the SQL Server query via JDBC, but currently I am just getting the following default message when I print out the result of SQLException.getMessage():

The transaction ended in the trigger. The batch has been aborted.

Does anyone know how to extract the text I actually passed to raiserror in my trigger code? I have already tried:

  • SQLException.getState()
  • SQLException.getNextException()
  • SQLException.getCause()
  • SQLException.toString()
like image 750
BordrGuy108 Avatar asked Jan 24 '23 13:01

BordrGuy108


1 Answers

I figured it out. The problem was related to the severity I was choosing when calling raiserror(). I was passing in 10 for this argument as I had seen an example that put 10 there, but in order for the error text to get passed to the SQLException the severity must be 11 or higher. After changing the severity it all works fine. If anyone else has a similar problem I would recommend trying this. Also google JDBC error handling for useful documentation (I would submit a link, but new users aren't allowed).

like image 89
BordrGuy108 Avatar answered Jan 30 '23 02:01

BordrGuy108