Sql server TSQL将错误作为警告
我正在浏览微软70-761考试的问题,我遇到了一个麻烦的问题。问题要求“生成一个警告if” 显然,我应该使用Sql server TSQL将错误作为警告,sql-server,tsql,throw,raiserror,Sql Server,Tsql,Throw,Raiserror,我正在浏览微软70-761考试的问题,我遇到了一个麻烦的问题。问题要求“生成一个警告if” 显然,我应该使用RAISERROR(或THROW)语句。我的问题是-我应该使用什么严重性来满足这个要求 我知道16是THROW的默认值,但我不想把它称为警告。如果将严重性设置为10,则可能更合适RAISERROR 您只需查看文档即可: 基本上,您的答案应该是RAISERROR,严重程度为0-10(或者更确切地说,为0-9) 使用THROW无法处理严重性,因为默认的严重性为16。因此,它不能用于抛出警告。您
RAISERROR
(或THROW
)语句。我的问题是-我应该使用什么严重性来满足这个要求
我知道16是
THROW
的默认值,但我不想把它称为警告。如果将严重性设置为10,则可能更合适RAISERROR
您只需查看文档即可:
基本上,您的答案应该是RAISERROR
,严重程度为0-10(或者更确切地说,为0-9)
使用
THROW
无法处理严重性,因为默认的严重性为16。因此,它不能用于抛出警告。您要查找的SQL:
RAISERROR('Warning: <your message>', 0,0) WITH NOWAIT
如果您希望在任何周围事务完成之前显示消息,则NOWAIT的
部分非常重要。我在提出此问题之前阅读了本文。我更关心的是“警告”这个词本身。我仍然不确定我是应该用10分,还是两周前我自己通过了这次考试。如果你遇到这样的问题,你会得到不同的答案来选择正确的答案。它可能是RAISERROR
,严重性为0-10,并且没有将消息本身添加到系统消息中。然而,如果没有这样的答案,但是有一个先将错误添加到系统消息中的答案,那么如果语法正确,这也是正确的。通常情况下,0-10严重性不会出错,所有警告都是SSMS结果窗口消息选项卡中打印的警告,不会中断事务。
DECLARE @messageString varchar(max)
set @messageString = 'Warning: The time is ' + convert(varchar(max), getdate(), 120)
RAISERROR(@messageString,0,0) WITH NOWAIT