我过去做过类似的事情:
CREATE PROCEDURE InsertProductIds(@ProductIds xml) AS
INSERT INTO Product (ID)
SELECT ParamValues.ID.value('.', 'VARCHAR(20)')
FROM @ProductIds.nodes('/Products/id') as ParamValues(ID)
END
Run Code Online (Sandbox Code Playgroud)
显然这只是一个单列表,但 XML 方法也适用于多列表。然后你这样做:
EXEC InsertProductIds @ProductIds='<Products><id>3</id><id>6</id></Products>'
Run Code Online (Sandbox Code Playgroud)