ストアド プロシージャの実行時に次のエラーが発生しました。
次の SET オプションの設定が正しくないため、INSERT が失敗しました: 'QUOTED_IDENTIFIER'。計算列のインデックス付きビューやインデックス、フィルター選択されたインデックス、クエリ通知、XML データ型メソッド、空間インデックス操作で使用する SET オプションが正しいことを確認します。
プロシージャーは、QUOTED_IDENTIFIER
フラグを に設定して作成されますON
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'sp_procedure') AND TYPE IN (N'P', N'PC'))
BEGIN
DROP PROCEDURE [dbo].[sp_procedure]
END
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_procedure]
(
@param_1 XML
,@param_2 INT
)
AS
BEGIN
-- CODE
END
SELECT
from ステートメントsys.sql_modules
は、uses_quoted_identifiers
何らかの形で に設定されていることを示してい0
ます。
私はすでに次のコードを実行しようとしました。で実行されone batch
ます。
SET QUOTED_IDENTIFIER ON;
EXEC sp_procedure @param_1 = N'<?xml version="1.0" encoding="utf-16"?>
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />', @param_2= 51326
しかし、それは役に立ちません。
各セッションはQUOTED_IDENTIFIER
、1 に設定して作成されます。
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
それは何ですか?
UPD この特定のスクリプトを実行した後、他の多くのファイルも実行されることが判明しました。そのうちの 1 つは、QUOTED_IDENTIFIER を OFF に設定してストアド プロシージャを再作成しました。
ご協力ありがとうございました