Vous êtes sur la page 1sur 4

La commande BULK INSERT

BULK INSERT charge les données d'un fichier de données dans une table. Cette
fonctionnalité est similaire à celle fournie par l’option in de la commande bcp,
mais le fichier de données est lu par le processus SQL Server.

La syntaxe de base de cette commande est la suivante

data_file spécifie le chemin complet du fichier de données contenant les données


à importer dans la table ou la vue spécifiée.

fieldterminator spécifie la marque de fin de champ à utiliser pour les fichiers de


données de type char et widechar. La marque de fin de champ par défaut est \t.

rowterminator spécifie le délimiteur de fin de ligne à utiliser pour les fichiers de


données de type char et widechar. La marque de fin de champ par défaut est \n.

BULK INSERT requiert les autorisations INSERT et ADMINISTER BULK


OPERATION.

Cas Pratique
Dans ce cas nous importerons des données contenues dans un fichier texte dans
notre table. Commençons par créer dans la base de données tempdb la table goty
qui contiendra des informations relatives aux gagnants des prix du jeu de l’année.

Vérifions son contenu

Pour l’instant elle est vide. C’est bon signe. Créons sur notre ordinateur local un
fichier Jeu.txt.
Faisons un petit tour de magie et insérons ce bloc de données dans notre table

Vérifions de nouveau le contenu de notre table


Incroyable non !? En quelques lignes seulement nous venons de remplir une
quantité importante de données dans notre base. À présent nous ne pouvons plus
nous passer de la commande BULK INSERT pour l’importation de nos données.

Attention tout de même car BULK INSERT applique une validation et un


contrôle stricts des données lues dans un fichier qui sont susceptible d’entraîner
l’échec des scripts existants si ces derniers s’exécutent sur des données non
valides. Par exemple, BULK INSERT vérifie que :

• Les représentations en mode natif des types de données float ou real


sont valides.
• Les données Unicode comportent un nombre d'octets pair.

Vous aimerez peut-être aussi