Będziesz musiał zrobić kilka rzeczy, aby to osiągnąć, ponieważ twój parametr otrzymuje wiele wartości, musisz utworzyć typ tabeli i sprawić, by twoja procedura sklepu akceptowała parametr tego typu.
Ponieważ przekazujesz TABLE
jako parametr będziesz musiał utworzyć TYP TABELI w następujący sposób
TYP TABELI
CREATE TYPE dbo.Prco_Table AS TABLE
(
[Val1] Data Type
[Val2] Data Type
)
GO
Przechowywana procedura akceptacji tego typu param
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
WYKONAJ PROCJĘ
Zadeklaruj zmienną tego typu i wypełnij ją swoimi wartościami.
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