SET ARITHIGNORE (Transact-SQL)

クエリの途中でオーバーフロー エラーや 0 除算エラーが発生したときに、エラー メッセージを返すかどうかを制御します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SET ARITHIGNORE { ON | OFF }
[ ; ]

説明

SET ARITHIGNORE の設定では、エラー メッセージを返すかどうかだけを制御できます。SQL Server ではこの設定に関係なく、計算でオーバーフローや 0 除算のエラーが生じた場合には NULL が返されます。SET ARITHABORT の設定を使用すると、クエリが終了されるかどうかを判別することができます。この設定は、INSERT、UPDATE、および DELETE ステートメントで発生するエラーには影響しません。

SET ARITHABORT と SET ARITHIGNORE のいずれかが OFF でも、SET ANSI_WARNINGS が ON の場合は、SQL Server で 0 除算やオーバーフロー エラーが検出されるとエラー メッセージが返されます。

SET ARITHIGNORE は、解析時ではなく実行時に設定されます。

権限

public ロールのメンバーシップが必要です。

次の例では、SET ARITHIGNORE が ON の場合と OFF の場合に、2 種類のクエリ エラーが発生するとどうなるかを示します。

SET ARITHABORT OFF;
SET ANSI_WARNINGS OFF
GO

PRINT 'Setting ARITHIGNORE ON';
GO
-- SET ARITHIGNORE ON and testing.
SET ARITHIGNORE ON;
GO
SELECT 1 / 0 AS DivideByZero;
GO
SELECT CAST(256 AS TINYINT) AS Overflow;
GO

PRINT 'Setting ARITHIGNORE OFF';
GO
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
GO
SELECT 1 / 0 AS DivideByZero;
GO
SELECT CAST(256 AS TINYINT) AS Overflow;
GO