2011-12-14 57 views
1

我看到新的東西給我,通過提高在低嚴重的錯誤打印調試信息的存儲過程:作爲日誌記錄方法拋出低嚴重性錯誤?

raiserror (@Message, 10 , 1) with nowait 

如果我的存儲過程有如下的批處理命令啓動:

SQLCMD.EXE -E -S%SqlServer% -d %DatabaseName% -b -Q "dbo.usp_Myproc" >> "%LogFile%" 

我假設這些「錯誤消息」被記錄到文件%LogFile%

是這種情況嗎? T-SQL PRINT語句是否會執行相同的操作,我相信不會。

這是一個合理的方法/什麼是更好的登錄方式?

+1

使用`with nowait`的好處是,輸出得到直接發送,而不是等待緩衝區填滿對跟蹤長時間運行進度非常有用。這將作爲信息性消息而不是錯誤消息發送,因此假設將被視爲與打印相同。你不能測試這個嗎? – 2011-12-14 19:29:54

回答

1

嚴重程度較低的raiserror消息被寫入日誌文件,但是再次,PRINT消息也是如此。因此,我質疑爲什麼有人會選擇提出一個嚴重程度較低的錯誤消息來寫出並非真正錯誤的信息性消息。我的懷疑是,他們不知道PRINT命令,沒有想到使用它或不關心,只要它符合他們的目的。

+2

在管理工作室中嘗試使用raiserror和print。在看到輸出之前,打印可能會延遲,而raiserror會立即出現。 – 2013-01-17 10:23:21