Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insertion en masse avec qualificateur de texte dans SQL Server

Vous devez utiliser un "fichier de format" pour implémenter un qualificatif de texte pour l'insertion en bloc. Essentiellement, vous devrez apprendre à l'insertion en bloc qu'il existe potentiellement des délimiteurs différents dans chaque champ.

Créez un fichier texte appelé "level_2.fmt" et enregistrez-le.

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 première ligne, "11.0" fait référence à votre version de SQL. La deuxième ligne indique que votre tableau, [level2_import], comporte deux colonnes. Chaque ligne suivante décrira une colonne et obéira au format suivant :

[Numéro de colonne source][Type de données][Taille min][Taille max][Motif de délimitation][Numéro de colonne de destination][Nom de colonne de destination][Respect de la casse de la base de données]

Une fois que vous avez créé ce fichier, vous pouvez lire vos données avec l'instruction d'insertion en bloc suivante :

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

Reportez-vous à ce blog pour une explication détaillée du fichier de format.