我有幾個T-SQL存儲過程,其中我使用嚴重性參數爲0的RAISERROR將進度消息打印到輸出窗口。我已經使用WITH NOWAIT來確保郵件立即打印。與NOWAIT T-SQL RAISERROR只打印一個字符,而不是整個字符串
但是,無論我傳遞給RAISERROR的字符串是什麼,只有第一個字符正在打印到屏幕上。
例如:
RAISERROR('Profiles Complete', 0, 1) WITH NOWAIT
只打印單個 'P' 到屏幕上。
是否有人知道這是爲什麼或我如何解決它?
非常感謝,
Martyn。
無法這裏重現它(即使使用後續'WAITFOR'語句以確保我在*執行過程中看到結果*,而不是在批次完成時) – 2012-03-14 11:01:38
您的錯誤消息是您在示例中顯示的文字字符串還是變量?你提到給RAISERROR'傳遞'一個字符串,這讓我認爲你可能有一個char或varchar變量聲明沒有長度。在這種情況下,默認情況下長度爲1,所以你只能得到錯誤的第一個字母。 – Pondlife 2012-03-14 11:27:41
同樣無法重現。請說明你是如何使用proc的,例如你是否將錯誤消息字符串捕獲到定義爲varchar而沒有長度的字段中? – kaj 2012-03-14 11:30:41