2011-02-25 71 views
0

如果在存儲過程中有100次出現「PRINT」,是否有一種很好的方法在調試非調試時將它們全部打開/關閉?SQL調試打印

我可以添加一個變量@isdebug = 1

,後來,做這樣的事情 IF @isdebug = 1 PRINT @yourvar

,然後只需設置@isdebug爲0或1,具體取決於你需要什麼。 有沒有更好的方法來做到這一點?

+0

請參閱http://stackoverflow.com/questions/3212658/disable-print-in-sql-server – 2011-02-25 15:43:02

回答

3

不,那也是我有特效

IF @debug = 1 
BEGIN 
print 'Something' 
--or insert into a log table if you need the rows of a temp table 
--or the results of a calculation 
END 
1

這種想法的擴張設置了控制線。這給了我們更多的選擇,而不是打開或關閉。

例如: 存儲過程參數聲明

(@Debug  varchar(5), -- use bit wise control for debugging, currently 5 levels. 

簡單子來驅動測試/調試塊。

if substring(@Debug, 1, 1) = '1' 

測試運行,你可以爲@Debug輸入「10001」,讓「平」 1調試節目(即initialisations),只有「級別」 5(1)調試顯示的代碼分節你是測試/調試。

您也可以通過使用數字值(即2-9)來擴展此想法。但是,這可能太過頂層。