ARITHABORT 及 ARITHIGNORE 設為 ON 時的行為
如果 ARITHABORT 及 ARITHIGNORE 查詢處理選項都設為 ON,則 ARITHABORT 優先。
ARITHABORT 和 ARITHIGNORE 是二種不同的選項;將其中一個設為 ON 並不會自動將另一個設為 OFF。例如,若應用程式包含下列陳述式,則這兩個選項都會設為 ON:
SET ARITHABORT ON
SET ARITHIGNORE ON
GO
如果在預存程序中執行 SET 陳述式,新的設定會等到完成程序後才會生效。當程序完成之後,該選項的連接設定會還原成執行程序之前的值。
ANSI_WARNINGS 設定的效果
無論 ARITHABORT 和 ARITHIGNORE 的目前設定為何,ANSI_WARNINGS 設定都會影響查詢處理器的行為。
例如,若 SET ARITHABORT 或 SET ARITHIGNORE 的設定為 OFF,而 SET ANSI_WARNINGS 的設定為 ON,當 Microsoft SQL Server 發生除以零或溢位錯誤時,仍會傳回錯誤訊息。
下表簡要地敘述其差異。
ARITHABORT |
ANSI_WARNINGS |
行為 |
---|---|---|
ON |
ON |
僅中止陳述式。 |
ON |
OFF |
中止批次。 |
OFF |
ON |
僅中止陳述式。 |
OFF |
OFF |
繼續;值為 NULL。 |