こことオンラインでいくつかの調査を行った後、これが可能かどうかについて途方に暮れています。私がやりたいことは、テーブル値パラメーターの 1 つを含む複数のパラメーターを持つストアド プロシージャを呼び出すことです。
これは私のストアド プロシージャのスニペットです。
ALTER PROCEDURE [dbo].[procName]
@Action nvarchar(10) = 'view'
,@var1 int = 0
,@var2 int = 0
,@var3 myType ReadOnly
次の行を持つ別のプロシージャ (proc2) があります。
insert into @varX
select top 5
field1, field2
from
sourceTable
print 'Processing from table values...'
exec dbo.procName 'refresh', -1, 0, @varX
varX と var3 は同じ型 MyType であることに注意してください。proc2 を実行すると、dbo.procName に指定した引数が多すぎるというエラーが表示されます。
テーブル値パラメーターを含む複数のパラメーターをストアド プロシージャに指定することはできないと考えています。私は現在、procName の定義を 1 つのパラメーター (オンラインのすべての例にあるように) だけを持つように変更し、テーブル値パラメーターをパラメーター値の配列として機能させて、私が持っていた情報を含むようにすることを考えています。前の select ステートメント (proc2 内)。ただし、この呼び出しを実行できる場合は、その方法を説明してください。
ありがとう