[SQL Server] Importer via la commande BULK INSERT un fichier CSV vers une Table
-- =============================================
-- Author: KHARROUBI Zouhaier
-- Create date: 06/04/2016
-- Description: Importer le contenu d'un fichier CSV vers une table
-- NB : 1- Afin d'éviter tout problème de conversion, erreur Code page, troncation :
-- 1.1- Définir tous les champs de la table temporaire en NVARCHAR(MAX)
-- 1.2- Utiliser le paramètre CODEPAGE ='ACP'
-- 2- Le paramètre FIRSTROW = 2 permet d'éviter l'inégration de l'entête du fichier CSV
-- 3- La table cible de l'extraction du fichier CSV doit contenir le même nombre de colonnes que dans le fichier CSV
-- Autrement BULK INSERT échoue
-- =============================================
IF EXISTS(SELECT * FROM tempdb..sysobjects WHERE id = object_id(N'tempdb..#Factures'))
BEGIN
DROP TABLE #Factures
END
CREATE TABLE #Factures
(
Num_Fact nvarchar(max) NULL,
Date_Fact nvarchar(max) NULL,
Desc_Fact nvarchar(max) NULL,
Montant_Fact nvarchar(max) NULL
)
BULK INSERT #SAS_Articles
FROM 'D:\Exports\factures.csv'
WITH
(
CODEPAGE ='ACP',
FIRSTROW = 2,
FIELDTERMINATOR =';',
ROWTERMINATOR = '\n',
FIRE_TRIGGERS
);
SELECT * FROM #Factures