CREATE PROCEDURE Usp_insertgender
(@gendervalues VARCHAR(MAX))
AS
BEGIN
INSERT INTO sparsha.dbo.Genders ([GenderName])
VALUES @gendervalues;
END
Ich habe das obige Verfahren ausprobiert, erhalte jedoch eine Fehlermeldung
Meldung 102, Ebene 15, Status 1, Prozedur Usp_insertgender, Zeile 10
Falsche Syntax in der Nähe von "@gendervalues".
Ich vergehe @gendervalues
Werte als ("1"), ("2")
Antworten:
3 für die Antwort № 1Der wahrscheinlich einfachste Weg ist die Definition 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;
Wie man es nennt:
DECLARE @tvp AS myTVPType;
INSERT INTO @TVP (v)
VALUES ("1"),("2");
EXEC Usp_insertgender @TVP;
GO
1 für die Antwort № 2
Versuchen Sie Folgendes: (mit dynamischem SQL)
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