You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

微软70-761考试疑问:RAISERROR/THROW生成警告应设何种严重级别?

关于SQL Server中生成警告的RAISERROR/THROW选择及严重级别说明

这个问题在70-761考试里确实是个容易混淆的考点,我来帮你理清楚核心要点:

  • 警告对应的严重级别:SQL Server中,严重级别1-10属于纯信息性/警告类消息,不会中断批处理执行,也不会触发事务回滚;而16是默认的用户定义错误级别,属于错误范畴,会终止当前批处理(未被TRY/CATCH捕获时),甚至可能回滚事务。所以你认为RAISERROR设为级别10更合适的判断完全正确。

  • RAISERROR的正确用法:要生成符合要求的警告,直接使用RAISERROR指定严重级别10即可,示例代码如下:

    RAISERROR('这是符合要求的警告信息', 10, 1) WITH NOWAIT;
    

    这里的WITH NOWAIT可选,作用是让警告信息立即返回给客户端,而不是等到批处理结束后再输出。

  • THROW的局限性:THROW默认严重级别是16,而且它不支持直接指定低于16的严重级别——即使你想手动设置,语法上也不允许。如果非要用THROW模拟警告,只能先在TRY块里抛出错误,再在CATCH块里用RAISERROR转成级别10的警告,但这属于绕弯路,完全没必要,考试里肯定不会考这种复杂场景。

  • 考试考点提示:70-761里会重点考察严重级别的分类,记住:

    • 1-10:信息/警告,不中断执行
    • 11-16:用户可定义错误,会中断批处理(未捕获时)
    • 17-19:资源不足类错误,需要DBA介入
    • 20+:致命错误,会终止数据库连接

内容的提问来源于stack exchange,提问作者borkovski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:30:34