CREATE PROCEDURE Usp_insertgender
(@gendervalues VARCHAR(MAX))
AS
BEGIN
INSERT INTO sparsha.dbo.Genders ([GenderName])
VALUES @gendervalues;
END
我尝试了上述过程,但出现错误
Msg 102, Level 15, State 1, Procedure Usp_insertgender, Line 10
Incorrect syntax near '@gendervalues'.
我将 @gendervalues
值传递为 ('1'),('2')
最佳答案
可能最简单的方法是定义 TVP :
CREATE TYPE myTVPType AS TABLE( v VARCHAR(50));
GO
CREATE PROCEDURE Usp_insertgender (@gendervalues myTVPType READONLY)
AS
BEGIN
INSERT INTO sparsha.dbo.Genders ([GenderName])
SELECT v
FROM @gendervalues;
END;
如何调用:
DECLARE @tvp AS myTVPType;
INSERT INTO @TVP (v)
VALUES ('1'),('2');
EXEC Usp_insertgender @TVP;
GO
关于sql-server - 如何使用 SQL Server 中的存储过程在单个查询中插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620116/