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。