SET ARITHIGNORE (Transact-SQL)
クエリの途中でオーバーフロー エラーや 0 除算エラーが発生したときに、エラー メッセージを返すかどうかを制御します。
構文
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