Partager via


Comment : importer des objets de base de données à partir d'un script

En plus d'être capable d'importer votre schéma de base de données à partir d'une base de données existante, vous pouvez également importer des objets de base de données à partir d'un ou plusieurs scripts existants. Vous pouvez, par exemple, utiliser cette approche pour prendre une définition de base de données existante qui a été créée à l'aide d'autres outils tiers et l'importer dans votre projet de base de données. Le script que vous avez spécifié est analysé, et toutes les instructions qui créent des objets de base de données sont identifiées et importées dans le projet de base de données. Vous pouvez importer des scripts en utilisant l'Assistant Importation de fichier de script SQL ou à l'aide d'une commande d'automatisation à partir de la fenêtre Commande.

Si l'une des définitions d'objet contient une erreur, l'objet est ignoré. Si l'erreur est liée à la définition du type, l'instruction est placée dans le fichier ScriptsIgnoredOnImport.sql dans le projet de base de données. Si le type de l'objet est valide mais que sa définition contient une erreur, telle qu'une vue qui référence une table inexistante, un message d'erreur s'affiche dans la fenêtre Liste d'erreurs.

Les instructions non importées sont placées dans le fichier ScriptsIgnoredOnImport.sql (dans votre solution).

Importation de définitions d'objet de base de données

Pour utiliser l'Assistant Importation de fichier de script SQL

  1. Dans le menu Projet, cliquez sur Importer le script.

    L'Assistant Importation de fichier de script SQL s'affiche.

    Notes

    Vous pouvez également cliquer avec le bouton droit sur le projet de base de données dans l'Explorateur de solutions ou dans la vue Schéma, puis cliquer sur Importer le script.

  2. Cliquez sur Suivant pour passer à la page Sélectionner le fichier après avoir lu la page d'introduction de l'Assistant.

  3. Si vous souhaitez importer plusieurs scripts, allez à étape 7.

  4. Cliquez sur Fichier unique.

  5. Dans la zone Nom de fichier, tapez le nom de fichier, chemin d'accès inclus, du script que vous voulez importer. Vous pouvez également cliquer sur Parcourir pour localiser le fichier.

  6. Passez à étape 11.

  7. Cliquez sur Fichiers multiples.

  8. Cliquez sur Parcourir et accédez au dossier qui contient les scripts que vous souhaitez importer.

    Important

    Vous sélectionnez le dossier qui contient le script que vous souhaitez importer, et non les scripts eux-mêmes.

  9. Cliquez sur Sélectionner un dossier.

  10. Dans la liste des fichiers et des dossiers, activez les cases à cocher qui correspondent aux scripts ou aux sous-dossiers qui contiennent les scripts que vous souhaitez importer.

  11. Cliquez sur Suivant.

  12. Si vous voulez que les objets importés remplacent les objets de la base de données qui ont le même nom et le même type, activez la case à cocher Remplacer les objets qui existent déjà dans le projet.

  13. Si vous ne souhaitez pas importer de propriété étendue, désactivez la case à cocher Importer des propriétés étendues.

  14. Si vous souhaitez importer des autorisations, activez la case à cocher Importer les autorisations.

  15. Si vous souhaitez importer des autorisations et les ajouter au modèle de projet, vous devez également activer la case à cocher Ajouter les autorisations importées au script de modèle de projet.

    Notes

    Si vous importez des autorisations et que vous les ajoutez au modèle, la durée nécessaire à l'ouverture du projet de base de données peut augmenter considérablement.

  16. Dans Encodage, cliquez sur l'encodage dans lequel le fichier de script a été créé.

  17. Cliquez sur Terminer pour importer des définitions d'objet de base de données à partir du script que vous avez spécifié.

    Une page d'avancement s'affiche pendant l'analyse du script et l'ajout de toute définition d'objet à votre projet de base de données. Un fichier journal est créé lorsque vous importez des définitions de base de données à partir d'un script. Les fichiers journaux sont stockés dans le sous-dossier Importer les journaux de scripts dans le dossier du projet.

    Notes

    Le fichier source n'est pas modifié et s'ouvre en mode lecture seule partagé.

Pour utiliser le modèle Automation Visual Studio

  1. Créez ou ouvrez un projet de base de données.

    Pour plus d'informations, consultez Comment : créer des projets de base de données et serveur vides ou Comment : ouvrir un projet de base de données ou serveur.

  2. Dans le menu Affichage, pointez sur Autres fenêtres et cliquez sur Fenêtre Commande.

  3. Dans Fenêtre Commande, tapez la commande suivante :

    Project.ImportScript /FileName "MyScript.sql"
    

    Remplacez MyScript.sql par le nom du script que vous souhaitez importer.

    Notes

    Vous pouvez spécifier des options supplémentaires pour la commande qui contrôlent l'opération d'importation. Pour plus d'informations, consultez Référence des commandes Automation pour les fonctionnalités de base de données de Visual Studio. Si vous ne spécifiez pas de nom de fichier, l'Assistant Importation de base de données apparaît.

    Les objets et les paramètres sont importés à partir du script spécifié vers le projet sélectionné dans l'Explorateur de solutions lorsque vous avez exécuté la commande. La fenêtre Liste d'erreurs affiche les éventuelles erreurs en rapport avec les objets créés lors de l'importation du script.

    À ce stade, vous devez configurer vos paramètres de projet de base de données avant de pouvoir générer et déployer votre projet de base de données. Pour plus d'informations, consultez Comment : configurer les propriétés de base de données pour les projets de base de données.

Problèmes et limitations

L'Assistant Importation de fichier de script SQL recherche le script spécifié pour toutes les instructions de langage de définition de données (DDL) CREATE et ajoute les objets correspondants à vos projets. Les limitations suivantes s'appliquent :

  • Les instructions qui ne sont pas reconnues sont placées dans le fichier ScriptsIgnoredOnImport.sql du projet de base de données.

  • Par principe, le script contient les définitions des objets d'une seule base de données. Tous les objets sont importés dans votre projet de base de données actuel. Si le script contient les définitions de plusieurs bases de données, les instructions CREATE DATABASE et USE sont ignorées, et tous les objets sont ajoutés à votre projet de base de données. Si vous souhaitez créer plusieurs projets de base de données, vous devez fractionner manuellement le fichier afin de disposer d'un fichier pour chaque base de données, puis importer chaque fichier séparément dans son projet de base de données respectif. Si vous importez un script qui comprend plusieurs définitions de base de données dans un seul projet de base de données, vous pouvez recevoir un nombre important d'erreurs.

  • Les instructions ALTER DATABASE qui ajoutent des groupes de fichiers sont également importées. Si le script contient une instruction CREATE qui est suivie d'une instruction DROP pour l'objet créé, ce dernier sera importé.

  • Seules les instructions ALTER TABLE qui ajoutent des contraintes à une table ou qui spécifient des colonnes pour un index de texte intégral sont importées. Pour les contraintes, seules les instructions qui ajoutent une seule contrainte sont comprises. Les instructions qui ajoutent plusieurs contraintes à une table sont ignorées.

  • Les lots doivent être séparés par des instructions GO.

    Notes

    Pour importer le résultat de l'exécution du script, plutôt que les instructions CREATE qui sont contenues dans le script, vous pouvez exécuter le script pour créer une base de données, puis utiliser la commande Importer un schéma de base de données pour importer la base de données résultante.

Voir aussi

Tâches

Comment : afficher des objets de base de données

Comment : supprimer des objets de base de données

Concepts

Création et modification des objets de base de données et serveur