Je ne sais pas s'il existe un moyen direct de le faire dans le T-SQL , mais si vous souhaitez utiliser Bulk Insert, vous pouvez utiliser sqlcmd
pour exporter vers un fichier CSV, puis réimporter le fichier dans le serveur à l'aide de Bulk Insert.
Créer un dbo.Split
Functionm, vous pouvez vous référer ici diviser la chaîne en plusieurs enregistrements
Il y a des tonnes de bons exemples.
si vous souhaitez exécuter en tant que traitement par lots, vous pouvez exécuter sqlcmd
et 'Insertion groupée'
sqlcmd -S MyServer -d myDB -E -Q "select dbo.Split(col1) from SomeTable"
-o "MyData.csv" -h-1 -s"," -w 700
-s"," sets the column seperator to
bulk insert destTable
from "MyData.csv"
with
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Sinon, vous pouvez manipuler directement dans le T-SQL, mais étant donné que vous avez le même identifiant de définition de colonnes.
INSERT INTO DestinationTable
SELECT dbo.Split(col1) FROM SomeTable