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.