CREATE PROCEDURE Usp_insertgender
(@gendervalues VARCHAR(MAX))
AS
BEGIN
INSERT INTO sparsha.dbo.Genders ([GenderName])
VALUES @gendervalues;
END
Ho provato sopra la procedura ma sto ricevendo un errore
Messaggio 102, livello 15, stato 1, procedura Usp_insertgender, riga 10
Sintassi errata vicino a "@gendervalues".
Sto passando @gendervalues
valori come ("1"), ("2")
risposte:
3 per risposta № 1Probabilmente il modo più semplice è definire 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;
Come chiamarlo:
DECLARE @tvp AS myTVPType;
INSERT INTO @TVP (v)
VALUES ("1"),("2");
EXEC Usp_insertgender @TVP;
GO
1 per risposta № 2
Prova questo: (con SQL dinamico)
CREATE PROCEDURE Usp_insertgender
(@gendervalues VARCHAR(MAX))
AS
BEGIN
DECLARE @sql nvarchar(2000)
SET @sql = N"INSERT INTO sparsha.dbo.Genders ([GenderName])
VALUES " + @gendervalues
EXEC sp_executesql @sql
END