Copie et génération des scripts d'une base de données Microsoft SQL Server

Poulain

Ce tutoriel va vous expliquer comment créer le script de votre base de données, pour en faire une copie exacte. ♪

- Titre : Copie et génération des scripts d'une base de données Microsoft SQL Server

- Auteur : Poulain

- Parution : 4 juillet 2008

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ®  Poulain. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- I. Présentation

- II. Création du script du contenu de votre base de données

- III. Création d'un script de création de votre base de données

- IV. Création du script final

- V. Conclusion

I - Présentation

Le principe de ce tutoriel est de permettre la copie d'une base de données et de son contenu, par l'intermédiaire d'un script SQL, ce qui vous permettra de balader votre base de données partout avec vous et de pouvoir l'intégrer à un serveur facilement.

Cette méthodologie est tirée de la phase de matérialisation d'une base de données MS-SQL lors d'une mise en réplication.

La création du script d'une base de données est gérée par des produits payants, mais nous pouvons faire la même chose avec des produits gratuits.
Pour cela, nous aurons besoin des outils :

- Microsoft SQL Server Express

- SQL Server Management Studio Express (SSMSE)

- Microsoft SQL Server Database Publishing Wizard (MSSDPW)

II - Création du script du contenu de votre base de données

Le script de contenu correspond à tout ce que contient votre base de données, tous les enregistrements.
Nous allons le créer avec MSSDPW.

Pour commencer, lancez MSSDPW, cliquez sur Next.

Là, vous devez entrer le nom de votre serveur. Par défaut le nom est "localhost", laissez comme ceci si vous avez une instance pas défaut, sinon, vous tapez : "localhost\nomdelinstance"

Sélectionnez le mode d'identification que vous utilisez, et entrez les données requises si besoin.

Cliquez sur "Next".

Là vous avez la page de sélection de la base de données, Sélectionnez la vôtre.

Cliquez sur "Next".

La page de sortie du script s'affiche, Sélectionnez la sortie fichier, sélectionnez le chemin de sortie, mettez comme nom celui de votre fichier final.

Et là, très important, mettez "Supprimez les objets existants du script" à False. Laissez le reste par défaut.

Cliquez sur "Next", vérifiez les options.

Cliquez sur "Finish".

III - Création d'un script de création de votre base de données

Pour l'instant, nous avons le script de la base de données et son contenu, mais pas le script de création de la base.
Nous allons donc le créer grâce à SSMSE.

Pour commencer, ouvrez SSMSE, une page de connexion s'ouvre, connectez-vous au serveur.

Une fois connecté, il faut dérouler "Database", puis clic droit sur votre base de données.

Là, vous faites "Tasks" et cliquez sur "Generate script...".

Là, une fenêtre s'ouvre, avec un message de bienvenue, cliquez sur "Next".

Sélectionnez votre base de données et cochez la case "Script all objects in the selected base" et cliquez sur "Next"

Dans cette nouvelle fenêtre, mettez tout à False, sauf : "include if NOT EXIST" que vous mettez à True, "Script Database Create" que vous mettez à True et "Script Owner" que vous mettez à True

Cliquez sur "Next"

Là, vous arrivez sur une page de choix de la destination de sortie du script.
Je vous conseille de choisir "Script to file", de choisir le même chemin de sortie que pour le script du contenu de la base de données, laissez en Unicode, appelez-le "bddcreate.sql".

Cliquez sur "Finish>>|" ou "Next", vérifiez que vos choix sont bons, et cliquez sur "Finish"
Le programme crée le script.

IV - Création du script final

Pour l'instant, nous avons deux scripts, un pour la création du contenu de la base, l'autre pour la création de la base de données.
Pour réunir les deux, la manipulation est très simple.
Ouvrez "bddcreate.sql" puis sélectionnez le code de "Use [Master]" à "Use [nomdevotrebdd]"
Copier le tout avec un simple ctrl+C

Ouvrez le premier script, celui qui porte le nom final et copiez au tout début le script.

Enregistrez le tout, votre script est prêt!

Lors de la copie du code SQL du premier script vers le second, vous remarquerez la présence du chemin de création du fichier de la base de données et de son journal.
Pensez à les modifier pour créer votre base de données où bon vous semble.

Le script est un fichier texte, il contiendra donc toutes les données en clair, de plus si la base est volumineuse, le script SQL le sera aussi.

V - Conclusion

La création d'un script SQL vous permettant de copier votre base de données dans un nouveau serveur tout en gardant les données qui s'y trouvent n'est pas une tâche compliquée et peut être très utile lors du déploiement d'application ayant besoin d'une base de données nécessitant la présence de quelques données dès le départ.

Dans le cas plus rare mais ô combien ennuyeux d'un downgrade de version (passer d'un SQL Server 2008 à un SQL server 2000, par exemple), toute copie via backup/restore ou détachage/rattachage s'avérera vaine : seule cette méthode pourra alors vous sauver la mise.