環境
SQL 2017(14.0.3103.1), Windows 2016 STD
錯誤訊息
訊息 596,層級 21,狀態 1,行 0
工作階段為清除狀態,無法繼續執行。
訊息 0,層級 20,狀態 0,行 0
在目前的命令上發生嚴重錯誤。如果有任何結果,都必須捨棄。
訊息 0,層級 11,狀態 0,行 0
在目前的命令上發生嚴重錯誤。如果有任何結果,都必須捨棄。
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command.
The results, if any, should be discarded
測試的 SQL
這個狀況主要是有 Table-valued Functions, variable, view 加 if 所造成的問題,如下,
1 | --空的內容,主要測試使用 |
1 | --定義一個變數 |
解決方式
感覺是否為 DB 的問題,做了 DBCC CHECKDB, 也沒有錯誤。
將原本那個 View 改建立另一個名稱,也不會有錯誤,但用原本的 View 的名稱就是會噴錯。
請同事將 Windows 更新跑一跑再重開機試看看,
如果沒有效果的話,以下是暫時的解決方式。
測試了幾次後,發現如果沒有 if 也不會有錯誤,於是先將變數設定一個初始值。
DECLARE @ORG_TYPE VARCHAR(4);
改成
DECLARE @ORG_TYPE VARCHAR(4) = ‘’;
或是
DECLARE @ORG_TYPE VARCHAR(4);
SET @ORG_TYPE = ’’;
就不會有那個問題發生了:)