Ще трябва да направите няколко неща, за да задействате това, тъй като вашият параметър получава множество стойности, трябва да създадете тип таблица и да накарате процедурата ви за съхранение да приема параметър от този тип.
Тъй като предавате TABLE
като параметър ще трябва да създадете TABLE TYPE нещо както следва
ТИП ТАБЛИЦА
CREATE TYPE dbo.Prco_Table AS TABLE
(
[Val1] Data Type
[Val2] Data Type
)
GO
Съхранена процедура за приемане на този тип параметър
CREATE PROCEDURE mainValues
@TableParam Prco_Table READONLY --<-- Accepts a parameter of that type
AS -- Note it is ReadOnly
BEGIN
SET NOCOUNT ON;
/* do your insert from this parameter or other cool stuff */
INSERT INTO Target_Table (Col1, Col2)
SELECT [Val1] , [Val2]
FROM @TableParam --<-- Table Type variable
END
ИЗПЪЛНЕНИЕ НА ПРОЦЕДУРА
Декларирайте променлива от този тип и я попълнете с вашите стойности.
DECLARE @Table ClaimData( --<-- Declare a variable of your type
[Val1] Data Type
[Val2] Data Type
);
-- Populate the variable
INSERT INTO @Table ([Val1],[Val2])
SELECT testdesc, testoption
FROM tableA
WHERE testoption = 1
EXECUTE mainValues @Table --<-- Pass this variable of Table Type