RAISERROR Sql server

RAISERROR Sql server,sql,sql-server,Sql,Sql Server,我的sql查询中有以下代码来处理异常,但它引发了一些错误 Begin Catch If @@trancount>0 Rollback Declare @errmsg nvarchar(4000), @errseverity int Select @errmsg = ERROR_MESSAGE(), @errseverity = ERROR_SEVERITY() Raiserror(@errmsg, @errseverity, 1) End C

我的sql查询中有以下代码来处理异常,但它引发了一些错误

Begin Catch
    If @@trancount>0
    Rollback
    Declare @errmsg nvarchar(4000), @errseverity int
    Select @errmsg = ERROR_MESSAGE(), @errseverity = ERROR_SEVERITY()
    Raiserror(@errmsg, @errseverity, 1)
    End Catch
火灾例外
“大于18的错误严重性级别只能由sysadmin角色的成员使用WITH LOG选项指定”

您可以设置自己的严重性,而不是捕获的错误的严重性<代码>16将是一个不错的选择。为什么不直接抛出?@TT你能解释一下……我真的不知道这是怎么回事吗it@SruthiSureshTT表示将RaiseError语句中的
@errseverity
替换为
16
(作为建议的严重性级别)。或许可以阅读有关RaiseError语句和一般处理的MSDN文档,以便更好地了解正在发生的事情。使用
THROW
的建议也是值得尝试的