これは根本的に愚かかもしれませんが、ここに行きます:ARITHABORT、ARITHIGNORE - 私はそれらを元に戻す必要がありますか?
私はオーバーフローエラーを投げることなく実行する必要があるストアドプロシージャを持っています。オーバーフローの場合、私はNULLに満足しています。私はそれがすべてインターネットのまわりの提案を参照
SET ARITHABORT OFF;
SET ARITHIGNORE ON;
を使用するには、私は、のように、私のSPの最後に背面にそれらを有効にする必要がありますか?
SET ARITHABORT ON;
SET ARITHIGNORE OFF;
このようにしますか?これらもデフォルトですか?
また、(私の場合、 '606006000'をSMALLINTフィールドに入れようとすると)オーバーフローエラーを無視するには、両方のスイッチが必要ですか?
Azure DB v12を使用しています。
必要はありません。 https://msdn.microsoft.com/en-us/library/ms190306.aspxでは、ログオンセッションで常にARITHABORTをONに設定する必要があります。「ログオンセッションでは常にARITHABORTをONに設定する必要があります。そのセッション固有のことを意味します。より良い説明:https://msdn.microsoft.com/en-us/library/ms190356.aspxセッションに影響を与えることに注意してください。次回のクエリの前にセッションを解放して新しいセッションを取得すると、セッションはリセットされます。自動的に – xQbert
@ xQbertありがとう、第2のサイトは良い読書です。私はそれを受け入れる答えとしてこれを投稿してください。 – vacip
@xQbert Yep、2番目のリンクから: "SETステートメントがストアドプロシージャまたはトリガで実行されている場合、SETオプションの値はストアドプロシージャまたはトリガからコントロールが返された後に復元されます。ありがとう、私のgoogle-fuは今日弱かった。 – vacip