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

Inserção em massa com qualificador de texto no SQL Server


Você precisa usar um 'arquivo de formato' para implementar um qualificador de texto para inserção em massa. Essencialmente, você precisará ensinar à inserção em massa que existem delimitadores potencialmente diferentes em cada campo.

Crie um arquivo de texto chamado "level_2.fmt" e salve-o.
11.0
2
1   SQLCHAR   0  8000   "\","      1     wkt         SQL_Latin1_General_CP1_CI_AS
2   SQLCHAR   0  40   "\r\n"      2     area         SQL_Latin1_General_CP1_CI_AS

A primeira linha, "11.0", refere-se à sua versão do SQL. A segunda linha mostra que sua tabela, [level2_import], tem duas colunas. Cada linha a seguir descreverá uma coluna e obedece ao seguinte formato:

[Número da coluna de origem][Tipo de dados][Tamanho mínimo][Tamanho máximo][Padrão delimitador][Número da coluna de destino][Nome da coluna de destino][Sensibilidade de maiúsculas e minúsculas do banco de dados]



Depois de criar esse arquivo, você pode ler seus dados com a seguinte instrução de inserção em massa:
BULK INSERT level2_import
FROM 'D:\test.csv'
WITH 
(
  FIRSTROW = 2,
  FORMATFILE='D:\level_2.fmt'
);

Consulte este blog para obter uma explicação detalhada do arquivo de formato.