2009-01-19 276 views
1

我已經運行SQL Server作業,其中包含定期「打印」語句,以便查看作業歷史記錄並瞭解發生的情況。但是輸出與[SQLSTATE 01000]混雜在一起。考慮到這個輸出的數量是有限的,我希望儘可能多地留下我關心的信息。SQL Server作業輸出中的SQLSTATE 01000

是否有任何方法來抑制'print'命令的[SQLSTATE 01000]輸出?

+1

但它是如此有用的不斷讓人放心,SqlState確實是01000,你不覺得嗎? – codeulike 2011-04-07 10:44:24

回答

0

你可能運氣不好。這是PRINT語句的正常輸出。我不認爲有任何方法可以壓制他們。

0

如果您只想從輸出或包含[SQLSTATE 01000]的任何內容中刪除[SQLSTATE 01000],則不是肯定的。所以這裏是兩種方式。

Print replace(@PrintThis, '[SQLSTATE 01000]', ''); 

基本上,這將取代[SQLSTATE 01000]。

下一個使用CHARINDEX(expression1,expression1 [,start_location]),搜索expression2的expression1並返回其起始位置(如果找到)。搜索從start_location開始。

@result = CHARINDEX('[SQLSTATE 01000]', @PrintThis) 
if (@result > 0) 
    Print @PrintThis 

所以,如果CHARINDEX < 0字符串[SQLSTATE 01000]不存在,它不打印

如果錯過了什麼你正在嘗試做的,請這樣迴應。

我希望這有助於

佈雷特

3

問題(很抱歉。「特性」)是在SQL代理打印命令。我已經通過創建一個表格變量來解決這個問題,其中一列用於'輸出',並在我通過腳本前進時填充它,然後在表格變量的作業最後完成。通過SQL Agent將輸出配置到文件中會爲我提供一份工作日誌。在任務中如果遇到錯誤,我會在退出前轉儲表中的內容。 (我通常會在執行之前立即將要執行的命令包含到表變量中)。一個SELECT語句在作業結束時只需更換您的所有打印語句將擺脫那些煩人[SQLSTATE 01000]後綴到

每... 該死...... 線...

乾杯, 肯