Partager via


Exporter un inventaire Access (AccessToSQL)

Si vous avez plusieurs bases de données Access et que vous n’êtes pas sûr de celles à migrer vers SQL Server, vous pouvez exporter un inventaire de toutes les bases de données Access dans un projet. Vous pouvez ensuite examiner et interroger les métadonnées d’inventaire pour déterminer les bases de données et les objets de ces bases de données à migrer. Cet inventaire vous permet de trouver rapidement des réponses aux questions, telles que la liste suivante :

  • Quelles sont les bases de données les plus volumineuses ?
  • Qui possède la plupart des bases de données ?
  • Quelles bases de données contiennent les mêmes tables ?
  • Quelles bases de données n’ont pas été modifiées au cours des six derniers mois ?
  • Quelles bases de données contiennent des informations privées ?

Des exemples de requêtes utilisés pour répondre à ces questions sont fournis à la fin de cet article.

Métadonnées exportées

SSMA exporte des métadonnées sur les bases de données Access, les tables, les colonnes, les index, les clés étrangères, les requêtes, les rapports, les formulaires, les macros et les modules. Les métadonnées relatives à chacune de ces catégories d’éléments sont exportées vers une table distincte. Pour connaître les schémas de ces tables, consultez Schémas d’inventaire d’accès.

Exporter des données d’inventaire

Pour exporter un inventaire Access, vous devez d’abord ouvrir ou créer un projet SSMA, puis ajouter la base de données Access que vous souhaitez analyser. Après avoir ajouté des bases de données à un projet SSMA, vous exportez des métadonnées sur ces bases de données vers une base de données et un schéma SQL Server spécifiés. Si nécessaire, SSMA crée des tables pour stocker les métadonnées. SSMA ajoute ensuite les métadonnées relatives aux bases de données Access à la base de données SQL Server.

Remarque

Une base de données Access peut être divisée en plusieurs fichiers : une base de données principale qui contient des tables et des bases de données frontales qui contiennent des requêtes, des formulaires, des rapports, des macros, des modules et des raccourcis. Si vous souhaitez migrer une base de données fractionnée vers SQL Server, ajoutez la base de données frontale à SSMA.

Les instructions suivantes décrivent comment créer un projet, ajouter des bases de données au projet, se connecter à SQL Server, puis exporter des données d’inventaire.

Créer un projet

  1. Ouvrez SSMA pour Access.

  2. Dans le menu Fichier, sélectionnez Nouveau projet.

    La boîte de dialogue Nouveau projet apparaît.

  3. Dans la zone Nom , tapez le nom de votre projet.

  4. Dans la zone Emplacement , entrez ou sélectionnez un dossier pour le projet.

  5. Dans la zone de liste déroulante Migrer vers , sélectionnez la version cible vers laquelle vous souhaitez migrer, puis sélectionnez OK.

Pour plus d’informations sur la création de projets, consultez Création et gestion de projets.

Rechercher et ajouter des bases de données

  1. Dans le menu Fichier , sélectionnez Rechercher des bases de données.

  2. Dans l’Assistant Rechercher des bases de données, entrez le lecteur, le chemin d’accès du fichier ou le chemin UNC que vous souhaitez rechercher. Vous pouvez également sélectionner Parcourir pour sélectionner le lecteur ou le dossier réseau.

  3. Sélectionnez Ajouter pour ajouter l’emplacement à la zone de liste.

    Répétez les deux étapes précédentes pour ajouter des emplacements de recherche supplémentaires.

  4. Si vous le souhaitez, ajoutez des critères de recherche pour affiner la liste des bases de données retournées.

    Important

    La zone de texte Tout ou partie de la zone de texte nom de fichier ne prend pas en charge les caractères génériques carte.

  5. Sélectionnez Analyse.

    La page Analyse s’affiche. Cela montre les bases de données trouvées et la progression de la recherche. Pour arrêter la recherche, sélectionnez Arrêter.

  6. Dans la page Sélectionner des fichiers, sélectionnez chaque base de données que vous souhaitez ajouter au projet.

    Vous pouvez utiliser les boutons Sélectionner tout et effacer tout en haut de la liste pour sélectionner ou effacer toutes les bases de données. Vous pouvez également maintenez la touche Ctrl enfoncée pour sélectionner plusieurs lignes, ou maintenez la touche Maj enfoncée pour sélectionner une plage de lignes.

  7. Cliquez sur Suivant.

  8. Dans la page Vérifier, sélectionnez Terminer.

Pour plus d’informations sur l’ajout de bases de données à des projets, consultez Ajout et suppression de fichiers de base de données Access.

Se connecter à SQL Server

  1. Dans le menu Fichier, sélectionnez Connecter à SQL Server.

  2. Dans la boîte de dialogue de connexion, entrez ou sélectionnez le nom de l’instance de SQL Server.

    • Si vous vous connectez à l’instance par défaut sur l’ordinateur local, vous pouvez entrer localhost ou un point (.).

    • Si vous vous connectez à l’instance par défaut sur un autre ordinateur, entrez le nom de l’ordinateur.

    • Si vous vous connectez à une instance nommée, entrez le nom de l’ordinateur, une barre oblique inverse et le nom de l’instance. Par exemple : MyServer\MyInstance.

  3. Dans la zone Base de données , entrez le nom de la base de données cible pour les métadonnées exportées.

  4. Si votre instance de SQL Server est configurée pour accepter les connexions sur un port non par défaut, entrez le numéro de port utilisé pour les connexions SQL Server dans la zone de port du serveur . Pour l’instance par défaut de SQL Server, le numéro de port par défaut est 1433. Pour les instances nommées, SSMA tente d’obtenir le numéro de port du service SQL Server Browser.

  5. Dans la liste déroulante Authentification , sélectionnez le type d’authentification à utiliser pour la connexion. Pour utiliser le compte Windows actuel, sélectionnez Authentification Windows. Pour utiliser une connexion SQL Server, sélectionnez Authentification SQL Server, puis fournissez un nom d’utilisateur et un mot de passe.

Pour plus d’informations sur la connexion à SQL Server, consultez Connecter ing à SQL Server (AccessToSQL).

Exporter les informations d’inventaire

  1. Dans l’Explorateur de métadonnées Access, développez Access-metabase.

  2. Sélectionnez la zone case activée en regard des bases de données.

    Pour omettre des bases de données individuelles ou des objets de base de données, développez le dossier Bases de données, puis désactivez la zone case activée en regard de la base de données ou de l’objet de base de données.

  3. Cliquez avec le bouton droit sur Bases de données et sélectionnez Exporter le schéma.

  4. Dans la boîte de dialogue Sélectionner le schéma pour l’exportation , sélectionnez le schéma cible pour les métadonnées exportées, puis sélectionnez OK.

Chaque fois que vous exportez des métadonnées, SSMA ajoute les données à l’inventaire. Les données existantes dans l’inventaire ne sont pas mises à jour ou supprimées.

Interroger les métadonnées exportées

Après avoir exporté des métadonnées sur les bases de données Access, vous pouvez interroger les métadonnées. Les instructions suivantes décrivent l’utilisation de la fenêtre Éditeur de requête dans SQL Server Management Studio pour exécuter des requêtes.

Métadonnées de requête

  1. Dans le menu Démarrer , pointez sur Tous les programmes, pointez sur Microsoft SQL Server 2005 ou Microsoft SQL Server 2008 ou Microsoft SQL Server 2012, puis sélectionnez SQL Server Management Studio.

  2. Dans la boîte de dialogue Connecter au serveur, vérifiez les paramètres, puis sélectionnez Connecter.

  3. Dans la barre d’outils Management Studio, sélectionnez Nouvelle requête pour ouvrir Éditeur de requête.

  4. Dans la fenêtre Éditeur de requête, entrez une requête. Certains exemples sont présentés dans la section suivante.

  5. Appuyez sur la touche F5 pour exécuter la requête.

Exemples de requête

Avant d’exécuter l’une des requêtes suivantes, vous devez exécuter une requête USE database_name pour vous assurer que les requêtes sont exécutées sur la base de données qui contient les métadonnées exportées. Par exemple, si vous avez exporté des métadonnées vers une base de données nommée MyAccessMetadata, vous devez ajouter l’instruction suivante au début du code Transact-SQL :

USE MyAccessMetadata;
GO

Les exemples suivants utilisent tous le schéma dbo . Si vous avez exporté les métadonnées vers un autre schéma, veillez à modifier le schéma lorsque vous exécutez ces requêtes.

Quelles tables et colonnes se trouvent dans ces bases de données ?

La requête suivante joint les tables qui contiennent des métadonnées de colonne, de table et de base de données, puis retourne les noms de toutes les bases de données, tables et colonnes, triées par nom de colonne :

SELECT DatabaseName,
    TableName,
    ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
    ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
    ON T.DatabaseId = D.DatabaseId
ORDER BY ColumnName;

Quelles sont les bases de données les plus volumineuses ?

La requête suivante retourne le nom de la base de données, la taille du fichier et le nombre de tables de chaque base de données Access, triées par taille de fichier :

SELECT DatabaseName,
    FileSize,
    TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;

Qui est le propriétaire de la plupart des bases de données ?

La requête suivante retourne le nom de la base de données et le propriétaire de chaque base de données Access, triés par propriétaire.

SELECT DatabaseName, FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;

Quelles bases de données contiennent les mêmes tables ?

La requête suivante utilise une sous-requête pour rechercher tous les noms de tables qui apparaissent plusieurs fois dans la liste des tables, puis utilise cette liste de tables pour obtenir le nom de la base de données. Les résultats sont retournés en tant que nom de base de données, puis le nom de la table, et sont triés par nom de table.

SELECT DatabaseName,
    TableName
FROM dbo.SSMA_Access_InventoryTables T
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
    ON D.DatabaseId = T.DatabaseId
WHERE TableName IN (
    SELECT TableName
    FROM dbo.SSMA_Access_InventoryTables
    GROUP BY TableName
    HAVING COUNT(*) > 1
)
ORDER BY TableName;

Quelles bases de données n’ont pas été modifiées au cours des six derniers mois ?

La requête suivante obtient la date actuelle, obtient la valeur du mois il y a six mois, puis retourne une liste de bases de données dont la date de modification est supérieure à six mois.

SELECT DatabaseName,
    DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;

Quelles bases de données contiennent des informations privées ?

Vos bases de données Access peuvent contenir des informations sensibles ou personnelles. Vous pouvez déplacer ces bases de données vers SQL Server pour tirer parti de ses fonctionnalités de sécurité. Si vous savez que les colonnes contenant des données sensibles ont un nom spécifique ou contiennent des caractères spécifiques, vous pouvez utiliser une requête pour rechercher toutes les colonnes qui contiennent ces informations. Par exemple, vous pouvez trouver toutes les colonnes qui incluent la chaîne « salaire ». La requête retourne ensuite le nom de la base de données, le nom de la table et le nom de colonne.

SELECT DatabaseName,
    TableName,
    ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
    ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
    ON T.DatabaseId = D.DatabaseId
WHERE ColumnName LIKE '%salary%';

Si vous ne connaissez pas le nom de colonne, vous pouvez écrire une requête pour retourner toutes les colonnes. Pour ce faire, supprimez la clause WHERE de la requête précédente.

Voir aussi