代码之家  ›  专栏  ›  技术社区  ›  Lukasz Lysik

禁用SQL Server中的打印

  •  5
  • Lukasz Lysik  · 技术社区  · 16 年前

    我有一个脚本,其中包含许多调试消息,这些消息由 PRINT 功能。有什么方法可以禁用这些消息吗?我想到了一些 SET NOCOUNT ON ,但用于用户消息。

    4 回复  |  直到 16 年前
        1
  •  6
  •   Daniel P    16 年前

    我喜欢在脚本/sps中设置一个变量@debug tinyint。

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

    然后,不要使用打印,而是使用:

    IF @Debug > 0 RAISERROR( 'Busy doing something...', 0, 1 ) WITH NOWAIT
    

    与nowait一起使用会强制立即显示消息,而不仅仅是在刷新输出缓冲区时。

    作为惯例,我使用@debug=1表示进度消息,@debug=2表示包含dynmaic-sql,@debug=3表示输出结果集。

    当然,如果脚本中有go批处理终止符,则变量方法将无法工作。

        2
  •  3
  •   DiningPhilanderer    16 年前

    有时最简单的解决方案是最好的… 按照以下步骤制作所有处理调试的打印语句:

    PRINT 'Debug ' + [WhateverStatementsYouDesire]
    

    然后你可以搜索并替换

    PRINT 'Debug ' --> --PRINT 'Debug '
    

    做相反的查找和替换以再次打开它们…

    (我知道这不是你想要的,但我现在要做的是。 如果有你正在搜索的开关,我可能会改为那种方法。)

        3
  •  2
  •   Julius A    16 年前

    你只需简单地评论一下 PRINT 声明

        4
  •  1
  •   gbn    16 年前

    很简单,没有。也没有调试。

    SSMS tools pack 具有调试功能,但我没有使用它。