使用存储过程批量插入/更新

use*_*160 5 sql sql-server

谁能给我一个使用 SQL Server 中的存储过程批量插入/更新表中记录的示例脚本?

Roa*_*ior 4

我过去做过类似的事情:

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)