2010-07-09 85 views
4

我有一個包含許多調試消息的腳本,這些消息是由PRINT函數打印的。有什麼辦法可以禁用這些消息嗎?我想到的是類似於SET NOCOUNT ON,但用於用戶消息。在SQL Server中禁用PRINT

回答

5

我喜歡在我的腳本/ SP中設置一個變量@Debug tinyint。

默認/將其設置爲0來抑制消息,1來顯示消息。

然後,而不是使用PRINT,使用:

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

使用WITH NOWAIT強制只是當輸出緩衝器被刷新,以立即和不顯示消息。

作爲慣例,我使用@Debug = 1表示進度消息,@Debug = 2表示包含dynmaic SQL,@Debug = 3表示輸出結果集。

當然,如果你的腳本中有GO批終止符,變量方法將不起作用。

+0

這就是爲什麼我要用PRINT語句替換... – 2010-07-09 17:05:30

2

你需要簡單地註釋掉所有PRINT陳述

1

很簡單,沒有。沒有#debug。

SSMS tools pack有#調試功能,但我沒有用它。

3

有時,最簡單的解決方案是最好的... 製作與調試處理所有的打印語句如下:

PRINT 'Debug ' + [WhateverStatementsYouDesire] 

然後,你可以做一個搜索和替換

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

待辦事項相反的查找和替換再次打開它們...

(我明白這不是你所要求的,但這是我做的現在。 如果您正在尋找這樣的開關,我可能會更改爲該方法。)

相關問題