Sie haben also eine durch Kommas getrennte Liste, die Sie jetzt in die Datenbank einfügen müssen. Aber die Sache ist die, dass Sie jeden Wert in der Liste in eine eigene Tabellenzeile einfügen müssen. Im Grunde müssen Sie also die Liste in ihre einzelnen Werte aufteilen und dann jeden dieser Werte in eine neue Zeile einfügen.
T-SQL hat jetzt einen STRING_SPLIT()
Funktion, die diese Art der Bedienung zum Kinderspiel macht. Diese Funktion war erstmals in SQL Server 2016 verfügbar und ist für Datenbanken mit einem Kompatibilitätsgrad von 130 oder höher verfügbar (wie Sie Ihren Datenbank-Kompatibilitätsgrad überprüfen und wie Sie ihn ändern).
Beispiel
Nehmen wir an, wir haben die folgende durch Kommas getrennte Liste:
Cat,Dog,Rabbit
Wir können den STRING_SPLIT()
verwenden Funktion, um jeden Wert in eine eigene Zeile zu unterteilen. So:
SELECT value FROM STRING_SPLIT('Cat,Dog,Rabbit', ',');
Ergebnis:
value ------ Cat Dog Rabbit
Wir sind also schon auf halbem Weg. Abhängig von Ihren Anforderungen könnte dies sogar alles sein, was Sie brauchen.
Fügen Sie die Werte in eine Tabelle ein
Wir können den obigen Code nehmen und ihn mit einem INSERT()
verwenden Erklärung. Mit anderen Worten, wir können diese Werte in eine Tabelle einfügen, und jedes Listenelement befindet sich in einer eigenen Zeile. Dazu können wir dem vorherigen Code einfach ein INSERT()
voranstellen Aussage.
Beispiel:
INSERT INTO Animals (AnimalName) SELECT value FROM STRING_SPLIT('Cat,Dog,Rabbit', ',');
Dadurch wird jeder Wert in eine eigene Zeile im AnimalName
eingefügt Spalte der Animals
Tabelle.
Überprüfen Sie die Ergebnisse
Um die Ergebnisse zu überprüfen, führen Sie ein SELECT
aus Anweisung gegen die Tabelle:
SELECT * FROM Animals;
Ergebnis:
AnimalId AnimalName -------- ---------- 1 Cat 2 Dog 3 Rabbit
Dieses Ergebnis setzt voraus, dass die AnimalId
Spalte ist eine IDENTITY
Spalte (aufsteigende Werte werden automatisch mit jeder neuen Zeile eingefügt).
Das vollständige Skript
Hier ist ein Skript, mit dem Sie das obige Beispiel in einem Rutsch ausführen können. Es erstellt die Datenbank, erstellt die Tabelle, fügt die Daten ein und überprüft dann die Ergebnisse.
Erstellen Sie die Datenbank:
/* Create database */ USE master; CREATE DATABASE Nature;
Den Rest erledigen:
/* Create table */ USE Nature; CREATE TABLE Animals ( AnimalId int IDENTITY(1,1) NOT NULL PRIMARY KEY, AnimalName nvarchar(255) NOT NULL ); /* Insert data from the list */ INSERT INTO Animals (AnimalName) SELECT value FROM STRING_SPLIT('Cat,Dog,Rabbit', ','); /* Check the result */ SELECT * FROM Animals;