2 つのパラメーターを渡すストアド プロシージャがあります。1 つのパラメーターはテーブル値パラメーターで、もう 1 つは nvarchar です。ストアド プロシージャは次のとおりです。
ALTER PROCEDURE [dbo].[_sp_TestProc]
@P1 As [dbo].[FileIdTableType] Readonly,
@P2 As NVARCHAR (MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT [Field1], [Field2], [Field3]
FROM [MyTable] WHERE [Field1] IN (@P1)
AND [Field2] IN (@P2)
END
コードから、DataTable を @P1 として渡し、値の文字列を @P2 として次のように渡します。"'Value1', 'Value2', 'Value3', 'Value4'"
私に問題を引き起こしているのは @P2 です。テーブルタイプは正常に機能します。通常、ストアド プロシージャでこのようなパラメーターを使用する場合、内部で文字列を作成し、文字列をパラメーターでフォーマットしてから、sp_executeSql を呼び出してクエリを実行します。ただし、テーブル値パラメーターを使用する場合、これは機能しません。
このように nvarchar とともにテーブル値パラメーターを操作する方法を知っている人はいますか? これを正しくフォーマットしようとすると、単純なものが欠けていると確信しています。ありがとう、
-スコット