import export avec SQL Server

publicité
Mise en œuvre de SQL Server
Importation et exportation avec SQL Server
Objectif : exporter et importer des données entre SQL Server et des outils bureautique dans
un contexte pédagogique.
1. Importation de données
C’est une problématique fréquente que de disposer d’un tableau Excel ou d’une base Access
dont on souhaite transférer les données sous SQL Server.
Ce dernier propose un assistant permettant de réaliser simplement les importations et
exportations. Une métaphore de « pompe à données » visualisable graphiquement explique les
échanges entre une source et une destination.
Nous nous limitons ici aux importations exportation avec Excel et Access.
1.1 Importation de données depuis Excel
1.1.1 Préparation sur Excel
On dispose d’une
feuille Excel dont
on
souhaite
transférer le contenu
dans une base de
données.
Dans cet exemple,
les quatre relations
doivent
être
transférées
dans
quatre tables.
La première étape consiste à nommer
les zones concernées (observer que la
zone nommée comporte aussi la ligne
contenant les noms des colonnes) ;
chaque feuille ou zone apparaîtra ainsi
comme un objet dont le contenu peut
servir à l’importation…
Jean-Philippe Pujol
1/9
Mise en œuvre de SQL Server
1.1.2 Importation à partir d’Enterprise Manager
On crée tout d’abord une base de données vide de toute table métier,
par exemple la base de données « compta ».
L’utilisation
de
l’assistant
d’importation va permettre de
construire et paramétrer la pompe…
…d’abord pour la source de
données : on choisit le
fournisseur de données
« Microsoft Excel 972000 » puis le fichier
Excel…
…pour la destination de données on
choisit le fournisseur (OLE DB pour
SQL Server naturellement), le serveur
concerné, l’authentification utilisée et
la base de destination…
…les différents objets présents
dans le classeur Excel apparaissent
(toutes les feuilles du classeur ainsi
que les zones nommées) ; on
sélectionne ceux qui doivent être
importés…
Jean-Philippe Pujol
2/9
Mise en œuvre de SQL Server
…il est souhaitable de gérer maintenant la transformation de ces objets en cliquant sur l’icône
correspondante
dans la colonne
Transformer. En
effet, si Excel est
capable de fournir
des indications sur
les types des
champs, il n’en est pas de même sur les longueurs. Par exemple on précise des tailles et des
types de champs différents des valeurs proposées par défaut (ici, on a changé le type du
nomClient de nvarchar(255) en varchar(32), et on a indiqué que numero de peut pas prendre
de valeur NULL (mal traduit par le terme Annulable) ; il reste à indiquer dans cette copie
d’écran que le type de numero est plutôt int que float)…
Remarque : la gestion future des clés
primaires et étrangères sera facilitée par
de judicieuses transformations
…le lot d’importation étant défini, il
est intéressant de l’enregistrer pour
en observer la structure (cocher
Enregistrer le lot DTS)…
…après la saisie d’un
nom pour le lot,
l’importation est alors
réalisée et le lot est
mémorisé.
Le lot créé apparaît parmi les
lots locaux…
Jean-Philippe Pujol
3/9
Mise en œuvre de SQL Server
…et son contenu peut être observé, voire modifié :
Quant à la base de données, si les tables et leur contenu ont bien été importés, il reste à définir
les clés primaires et étrangères. Via le diagramme de la base, les définitions seront simples à
faire.
L’assistant diagramme compose le schéma initial :
Il ne reste qu’à définir les clés et les liens avec la souris :
Remarque : l’assistant d’importation n’importe jamais les clés primaires et étrangères (c’est évident
pour Excel) ; si les transformations des champs n’ont pas été faites lors de l’importation, il est encore
possible de le faire avec SQL Server.
L’observation du contenu des tables permet de vérifier le résultat :
Jean-Philippe Pujol
4/9
Mise en œuvre de SQL Server
1.2 Importation d’une base Access
Le principe d’importation est similaire au précédant, bien que les types et les tailles des
champs soient mieux reconnus. Le principal changement porte bien sûr sur le choix du
fournisseur de données.
Exemple : on dispose d’une base Access dont le fichier de données est nommé bibli2k.mdb
Cette base comporte différentes tables :
On crée avec Enterprise Manager une base de données vide, par
exemple Bibliotheque…
…on lance l’assistant d’importation (comme précédemment dans
le menu ou avec un clic droit sur la base vide : Toutes les
tâches/Importer des données)…
…en indiquant que la
source de données est
« Microsoft
Access »
puis en sélectionnant le
fichier bibli2K.mdb…
…pour la destination on prend le
fournisseur OLE DB et on fournit
l’authentification nécessaire pour
l’accès au serveur (ici, le compte sa).
On vérifie surtout que la base de
destination est bien Bibliotheque (le
danger étant d’importer dans une
base système)…
Jean-Philippe Pujol
5/9
Mise en œuvre de SQL Server
…le choix des tables a importer
est normalement étendu à
l’ensemble
des
tables
présentes…
…l’importation
des
clés
primaires et étrangères n’est
pas réalisée, cependant les
clauses NULL et NOT NULL
sont correctement interprétées…
…la transformation est
utile pour vérifier les
types et les longueurs :
seuls les types méritent
d’être vérifiés, SQL
Server choisissant des
caractères Unicode ; on
changera donc les types
nchar en char et nvarchar en varchar.
La mise en place des différentes contraintes reste à faire sur le schéma relationnel graphique.
Remarque : si la création de clé primaire ou de clé étrangère est refusée, c’est signe que des types de
données n’ont pas été correctement transformés.
2. Exportation de données
Il est rare qu’une exportation de base SQL Server soit faite vers Access ; il est plus fréquent
par contre de vouloir traiter avec Excel des données SQL Server en préférant utiliser les
fonctions Excel et la puissance de la recopie plutôt que de recourir à des requêtes SQL.
2.1 Exportation vers Excel
Exemple : on dispose d’une base de données SQL Server nommée Butafuel
Jean-Philippe Pujol
6/9
Mise en œuvre de SQL Server
On crée un nouveau classeur
Excel (qui contient par défaut
trois feuilles) ; on l’enregistre
sur le disque sous le nom
importButafuel.xls et surtout on
le ferme afin de ne pas
perturber l’exportation à venir.
Après appel de l’assistant
d’exportation, on paramètre la
source de données…
…le fournisseur OLE DB, les
paramètres d’authentification, la
base de données…
…pour la destination, on choisit
Microsoft Excel, et on désigne
le fichier précédemment créé..
…on sélectionne le tables
à exporter (par défaut, la
destination
est
une
nouvelle feuille dans le
classeur)…
Jean-Philippe Pujol
7/9
Mise en œuvre de SQL Server
…l’exportation étant réalisée, les contenus des tables apparaissent dans de nouvelles feuilles.
2.2 Exportation vers Access
Exemple : on dispose d’une base de données SQL Server citerne :
On commence tout d’abord par
créer une base Access vide,
citerneAccess…
Jean-Philippe Pujol
8/9
Mise en œuvre de SQL Server
…après avoir paramétré
la source, on paramètre
la destination…
…on sélectionne les tables
que l’on désire exporter
(ici, la table essai ne nous
intéresse pas et on peut
observer que la vue
ClientsActuels sous SQL
Server
pourrait
être
exportée en tant que table
sous Access)…
…l’exportation réalisée, il reste à
définir les clés primaires (modifier la
table) et les clés étrangères (avec le
schéma relationnel par exemple).
3. Conclusion
Le mécanisme d’importation exportation implémenté sous SQL Server permet pratiquement
le transfert de données de toutes les sources vers toutes les destinations.
Il est important de bien contrôler et modifier les types de champs avant le transfert. Ceci
suppose que la structure des données à transférer soit bien analysée avant toute action.
Après transfert, il est généralement indispensable de rétablir les liens entre données.
Jean-Philippe Pujol
9/9
Téléchargement