Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Inserimento in blocco con qualificatore di testo in SQL Server

È necessario utilizzare un "file di formato" per implementare un qualificatore di testo per l'inserimento in blocco. In sostanza, dovrai insegnare all'inserto collettivo che ci sono delimitatori potenzialmente diversi in ogni campo.

Crea un file di testo chiamato "level_2.fmt" e salvalo.

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

La prima riga, "11.0" si riferisce alla tua versione di SQL. La seconda riga mostra che la tua tabella, [level2_import], ha due colonne. Ogni riga successiva descriverà una colonna e rispetta il seguente formato:

[Numero colonna di origine][Tipo di dati][Dimensione minima][Dimensione massima][Modello delimitatore][Numero colonna di destinazione][Nome colonna di destinazione][Maiuscole/minuscole del database]

Dopo aver creato quel file, puoi leggere i tuoi dati con la seguente istruzione di inserimento collettivo:

BULK INSERT level2_import
FROM 'D:\test.csv'
WITH 
(
  FIRSTROW = 2,
  FORMATFILE='D:\level_2.fmt'
);

Fare riferimento a questo blog per una spiegazione dettagliata del file di formato.