sql-server - 不同的 RAISERROR 严重级别意味着什么?

标签 sql-server raiserror

我最好的谷歌结果是 this :

  • 以下 11 条是警告,而不是错误
  • 11-16 可供使用
  • 以上16个是系统错误
  • 11-16 岁之间没有行为差异

但是,根据 BOL,“任何用户都可以指定从 0 到 18 的严重级别。”

在我的特定存储过程中,我希望将错误返回到 .Net 客户端应用程序,因此看起来 11-18 之间的任何严重级别都可以解决问题。有谁有关于每个级别的含义以及如何使用它们的权威信息吗?

最佳答案

Database Engine Severity Levels

您应该返回 16。这是默认的、最常用的错误级别:

Indicates general errors that can be corrected by the user.

不要返回 17-18,这些表示更严重的错误,例如资源问题:

Indicate software errors that cannot be corrected by the user. Inform your system administrator of the problem.

也不要返回 11-15,因为每个级别都有特殊含义(14 - 安全访问、15 - 语法错误、13 - 死锁等)。

16级不会终止执行。

当您打算记录警告但继续执行时,请使用低于 10 的严重级别。

关于sql-server - 不同的 RAISERROR 严重级别意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122925/

相关文章:

python - 如何将 SQL 中的 RAISERROR 转换为 Python Pandas/SQLAlchemy

java - java可以处理由MS SQL Server RAISEERROR命令引起的异常吗?

sql - t-SQL 使用行号,但在重复的行上使用相同的数字

sql - Varchar(max) 列不允许作为 SQL Server 中的主键

sql - 如何将这些列转换/转置为 SQL 中的行?

sql - 使用 RAISERROR 指示 ACCESS DENIED 错误

c# - sql错误没有返回给调用者

sql-server - SQL查询获取日期时间范围

sql - 将 SQL SUM 与包含内部 SELECT 的 Case 语句一起使用

sql - 从 cfstoredproc 访问 RAISEERROR 消息