3

我正在查看 Microsoft 70-761 考试的问题,但遇到了一个麻烦的问题。该问题要求“产生警告如果”。

显然我应该使用RAISERROR(or THROW) 语句。我的问题是——我应该使用什么严重程度来满足这个要求?

我知道 16 是默认值THROW,但我不愿称其为警告。也许RAISERROR将严重性设置为 10 会更合适?

4

2 回答 2

2

您应该简单地检查文档:https ://docs.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-error-severities

基本上你的答案应该是RAISERROR严重性 0-10(或者更确切地说,0-9)。

由于THROW默认值为 16,因此您无法处理严重性。因此,它不能用于引发警告。

于 2018-04-01T08:24:26.920 回答
1

您正在寻找的 SQL:

RAISERROR('Warning: <your message>', 0,0) WITH NOWAIT

如果您在消息中需要任何“动态”内容,则需要以下内容:

DECLARE @messageString varchar(max)     
set @messageString = 'Warning: The time is ' + convert(varchar(max), getdate(), 120) 
RAISERROR(@messageString,0,0) WITH NOWAIT

WITH NOWAIT如果您希望消息在任何周围事务完成之前出现,则该部分很重要。

于 2019-10-22T08:30:47.423 回答