在SQL Server中禁用PRINT

Luk*_*sik 5 sql-server printing

我有一个包含许多调试消息的脚本,这些消息由PRINT函数打印.有没有办法禁用这些消息?我有类似的想法SET NOCOUNT ON,但对于用户消息.

Dan*_*l P 6

我喜欢在我的脚本/ SP中设置变量@Debug tinyint.

默认/将此设置为0以禁止消息,将1设置为显示消息.

然后使用:而不是使用PRINT

IF @Debug > 0 RAISERROR( 'Busy doing something...', 0, 1 ) WITH NOWAIT
Run Code Online (Sandbox Code Playgroud)

使用WITH NOWAIT会强制立即显示消息,而不仅仅是在刷新输出缓冲区时.

作为惯例,我使用@Debug = 1表示进度消息,@ Debug = 2表示包含动态SQL,@ Debug = 3表示输出结果集.

当然,如果您的脚本中有GO批处理终结符,则变量方法将不起作用.