[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