sql >> Base de Datos >  >> RDS >> Sqlserver

BULK INSERT de una cadena delimitada por comas

No estoy seguro de si hay alguna forma directa de hacerlo en T-SQL, pero si desea usar Bulk Insert, puede usar sqlcmd para exportar a un archivo CSV y luego importar el archivo nuevamente al servidor usando Bulk Insert.

Crear un dbo.Split Functionm, puede consultar aquí cadena dividida en varios registros Hay toneladas de buenos ejemplos.

si desea ejecutar como proceso por lotes, puede ejecutar sqlcmd y 'Inserción masiva'

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'
)

De lo contrario, puede manipular directamente en T-SQL, pero dado que tiene la misma identificación de definición de columnas.

 INSERT INTO DestinationTable
 SELECT dbo.Split(col1) FROM SomeTable