Non sono sicuro che ci sia un modo diretto per farlo in T-SQL , ma se vuoi usare Bulk Insert puoi usare sqlcmd
per esportare in un file CSV e quindi importare nuovamente il file nel server utilizzando l'inserimento collettivo.
Crea un dbo.Split
Functionm, puoi fare riferimento qui dividi la stringa in più record
Ci sono un sacco di buoni esempi.
se vuoi eseguire come processo batch, puoi eseguire sqlcmd
e "Inserimento collettivo"
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'
)
Altrimenti, puoi manipolare direttamente in T-SQL, ma dato che hai la stessa definizione di identificazione delle colonne.
INSERT INTO DestinationTable
SELECT dbo.Split(col1) FROM SomeTable