Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

BULK INSERT de string delimitada por vírgula


Não tenho certeza se existe alguma maneira direta de fazer no T-SQL , mas se você quiser usar Bulk Insert você pode usar sqlcmd para exportar para o arquivo CSV e, em seguida, importe o arquivo de volta para o servidor usando Bulk Insert.

Crie um dbo.Split Functionm, você pode consultar aqui dividir string em vários registros Há toneladas de bons exemplos.

se você deseja executar como processo em lote, você pode executar sqlcmd e 'Inserção em massa'
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'
)

Caso contrário, você pode manipular diretamente no T-SQL, mas desde que tenha a mesma identificação de definição de colunas.
 INSERT INTO DestinationTable
 SELECT dbo.Split(col1) FROM SomeTable