Sql raiserror显示一条消息,但不显示另一条消息
我有以下代码:Sql raiserror显示一条消息,但不显示另一条消息,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有以下代码: DECLARE @timestamp varchar(20), @latestFeed INT, @LargestKeyProcessed INT, @NextBatchMax INT, @RC INT; SET @timestamp = CAST(CURRENT_TIMESTAMP as varchar(20)); SET @latestFeed = (SELECT MAX([feed_id]) FROM [dbo].[CAQH_RE
DECLARE
@timestamp varchar(20),
@latestFeed INT,
@LargestKeyProcessed INT,
@NextBatchMax INT,
@RC INT;
SET @timestamp = CAST(CURRENT_TIMESTAMP as varchar(20));
SET @latestFeed = (SELECT MAX([feed_id]) FROM [dbo].[CAQH_RESP_ALL_TEST_MIRROR]);
SET @LargestKeyProcessed = (SELECT MIN([record_id]) - 1 FROM [dbo].[CAQH_RESP_ALL_TEST_MIRROR] WHERE [feed_id] = @latestFeed);
SET @NextBatchMax = 1;
SET @RC = (SELECT MAX([record_id]) FROM [dbo].[CAQH_RESP_ALL_TEST_MIRROR]);
raiserror(@timestamp, 0, 1) with nowait
raiserror(@LargestKeyProcessed, 0, 2) with nowait
WHILE (@NextBatchMax < @RC)
BEGIN
BEGIN TRY
--do some stuff
COMMIT TRANSACTION flagHandling
raiserror('Transaction Committed', 0, 3) with nowait
raiserror(@timestamp, 0, 4) with nowait
raiserror(@LargestKeyProcessed, 0, 5) with nowait
END TRY
BEGIN CATCH
--catch some stuff
END CATCH
END
然后,在提交事务后,它会正确显示以下消息:
Transaction Committed
Jul 23 2015 9:11AM
但省略了最后一条消息,该消息应显示@LargestKeyProcessed
的值。此raiserror消息与生成上述奇数行为的脚本开头的raiserror消息相同
我只想让消息打印到messages窗口,而不让它看起来像是一个错误,还想打印所有消息。我在这里做错了什么?您给raiserror加了一个int,这意味着您正在使用msg\u id功能:
RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
msg_id:
是存储在sys.messages中的用户定义的错误消息编号
使用sp_addmessage的目录视图。用户定义错误的错误号
消息应大于50000。如果未指定msg_id,
RAISERROR将引发错误号为50000的错误消息
您应该使用varchar变量,然后它可以包含您想要发送的号码。请参阅。这完全有道理。我没有仔细查看文档。两个问题都解决了!
RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]