如何使用SQL Server显示从raiserror()生成的错误消息

时间:2009-06-01 04:54:44

标签: sql-server raiserror

我通过JDBC从jsp与SQL Server 2005进行交互(这是一个分配而不是真正的项目),我在我正在使用的数据库中创建了一个触发器。如果在执行此触发器时未满足某个条件,则通过raiserror()引发错误。我希望这个错误显示在通过JDBC调用SQL Server查询的实际页面上,但是当我打印出SQLException.getMessage()的结果时,我只是得到以下默认消息:

交易在触发器中结束。批次已中止。

有谁知道如何在我的触发器代码中提取我实际传递给raiserror的文本?我已经尝试过了:

  • SQLException.getState()
  • SQLException.getNextException()
  • SQLException.getCause()
  • SQLException.toString()

2 个答案:

答案 0 :(得分:9)

我明白了。问题与我在调用raiserror()时选择的严重性有关。我在10中传递了这个参数,因为我看到了一个将10放在那里的示例,但为了将错误文本传递给SQLException,严重性必须为11或更高。更改严重程度后,一切正常。如果其他人有类似的问题我会建议尝试这个。还有谷歌JDBC错误处理有用的文档(我会提交一个链接,但不允许新用户。)

答案 1 :(得分:0)

您需要迭代使用getNextException()返回的所有异常