次のようなデフォルト設定でストアドプロシージャを作成します。
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
Create PROCEDURE [dbo].[TestSP]
AS
BEGIN
set arithabort off
set arithignore on
--.....
END
それは結構です。次に、DB の非 null 値のテーブルにフィルター処理された一意のインデックスを作成すると、SQL Server Management Studio でストアド プロシージャを実行できなくなりました。私が得るエラーは次のようなものです:
次の SET オプションの設定が正しくないため、DELETE (または INSERT) が失敗しました: 'ANSI_NULLS, QUOTED_IDENTIFIER'。計算列のインデックス付きビューやインデックス、フィルター選択されたインデックス、クエリ通知、XML データ型メソッド、空間インデックス操作で使用する SET オプションが正しいことを確認します。
次のようなストアド プロシージャを実行しようとしました。
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
EXEC TestSP
または
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
EXEC TestSP
それでも上記のエラーが発生します。私はとても混乱しています。この問題を解決するにはどうすればよいですか?