Ich werde viele Datenzeilen aus einer CSV-Datei in eine SQL Server-Datenbank importieren (über eine Webanwendung). Ich brauche den automatisch generierten ID-Wert für den Client. Wenn ich dies in einer Schleife mache, ist die Leistung sehr schlecht (aber ich kann SCOPE_IDENTITY()
ohne Probleme verwenden).Gibt es eine Möglichkeit, SCOPE_IDENTITY zu verwenden, wenn Sie eine multiple insert-Anweisung verwenden?
würde eine leistungsfähigere Lösung eine Art und Weise wie dies:
INSERT INTO [MyTable]
VALUES ('1'), ('2'), ('3')
SELECT SCOPE_IDENTITY()
Gibt es eine Möglichkeit alle generierten IDs zu erhalten und nur die letzte erzeugte ID nicht?
Danke für Ihre Hilfe!
Mit freundlichen Grüßen, Thorsten
Nein, 'SCOPE_IDENTITY()' gibt Ihnen nur den ** einen, letzten ** eingefügten 'IDENTITY' Wert. Aber Sie könnten die OUTPUT-Klausel von SQL Server überprüfen .... –
Kommentar zu Ihrer gelöschten Antwort: Ich denke, Sie sollten die erste Zeile entfernen und ändern Sie die dritte Zeile zu 'sqlBuilder.Append (" OUTPUT INSERTED.autoid "); '. Sie müssen die Ausgabe nicht in eine Tabellenvariable einfügen, wenn Sie die Ausgabe an Ihren Client-Code senden möchten. –