/ / Einfügen mehrerer Zeilen in eine einzelne Abfrage mithilfe einer gespeicherten Prozedur in SQL Server - SQL Server, SQL Server 2008, TSQL, gespeicherte Prozeduren, SQL Server 2005

Wie Einfügen mehrerer Zeilen in einer einzelnen Abfrage mithilfe einer gespeicherten Prozedur in SQL Server - SQL-Server, SQL-Server-2008, TSQL, gespeicherte Prozeduren, SQL-Server-2005

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 № 1

Der 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