Le cadre de cet exemple est de faire en sorte de pouvoir monter sur un serveur de test un backup que l'on aurait récupéré depuis le serveur de production.
Ainsi, dans mon cas il s'agit en un seul script de créer la base de données sur le serveur de test et de lui remonter le backup que l'on a récupéré.
Source / Exemple :
USE master
GO
CREATE DATABASE NotreBase
ON
( NAME = NotreBase_dat,
FILENAME = 'C:\NotreRépertoireDeStockage\NotreBase.mdf' )
GO
RESTORE DATABASE NotreBase
FROM
DISK = 'C:\Temp\NotreBaseProd.bak'
WITH
MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBase.mdf',
MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBase_log.LDF'
GO
Conclusion :
Ce script a été testé sur un moteur MSDE pour cible de la base de test et a fonctionné parfaitement.
En vous souhaitant un bon coding.
Romelard Fabrice
3 juin 2009 à 18:36
http://www.xoowiki.com/Article/SQL/restauration-dynamique-20.aspx
13 mars 2007 à 09:11
J'ai essayé mais malheureusement je n'arrive pas.
Voici le message signalé par "Analyseur de requête SQL (SQL 2000)" :
La base de données à restaurer s'appelait 'NotreBase'.
Relancez l'instruction avec l'option WITH REPLACE pour remplacer la base de données 'NotreBaseCopy'.
Et voici le scripte complet que j'exécute :
USE master
GO
CREATE DATABASE NotreBase
ON
( NAME = NotreBase_dat,
FILENAME = 'C:\Data_DH\Database\NotreBase.mdf' )
GO
CREATE TABLE clients
(clt_num CHAR(8) NOT NULL PRIMARY KEY,
clt_nom VARCHAR(25) NOT NULL,
clt_pnom VARCHAR(20),
clt_pays VARCHAR(2) NOT NULL,
clt_loc VARCHAR(20) NOT NULL,
clt_ca integer DEFAULT 0,
clt_type VARCHAR(16) DEFAULT 'Particulier'
CHECK (clt_type in ('Particulier', 'Administration',
'Grand compte', 'PME'))
)
GO
CREATE TABLE fournisseurs
( frs_num CHAR(8) NOT NULL PRIMARY KEY,
frs_nom VARCHAR(25) NOT NULL UNIQUE)
GO
BACKUP DATABASE NotreBase
TO DISK = 'C:\Data_DH\Backup Database\NotreBase.bak'
GO
CREATE DATABASE NotreBaseCopy
ON
( NAME = NotreBase_dat,
FILENAME = 'C:\Data_DH\Database\NotreBaseCopy.mdf' )
GO
RESTORE DATABASE NotreBaseCopy
FROM
DISK = 'C:\Data_DH\Backup Database\NotreBase.bak'
WITH
MOVE 'NotreBase_dat' TO 'C:\Data_DH\Database\NotreBaseCopy.mdf',
MOVE 'NotreBase_log' TO 'C:\Data_DH\Database\NotreBaseCopy_log.LDF'
GO
Merci de votre aide
PS : Le but étant de pouvoir restaurer une base de donnée sur le même serveur mais sous un autre nom car celle-ci est utilisé.
12 mars 2007 à 16:23
Normalement cela ne pose aucun problème, il faut surtout modifier le nom de la base et le chemin d'accès aux fichiers :
--------------------------------------------------
USE master
GO
CREATE DATABASE NotreBaseCopy
ON
( NAME = NotreBase_dat,
FILENAME = 'C:\NotreRépertoireDeStockage\NotreBaseCopy.mdf' )
GO
RESTORE DATABASE NotreBaseCopy
FROM
DISK = 'C:\Temp\NotreBaseProd.bak'
WITH
MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBaseCopy.mdf',
MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBaseCopy_log.LDF'
GO
--------------------------------------------------
Cordialement
Romelard Fabrice [MVP]
12 mars 2007 à 13:24
Est-il possible de restaurer une base de donnée sous un autre nom sans écraser celle qui existe ?
Exemple :
Il existe une base de donnée NotreBase et on la sauvegarde sous le nom NotreBaseProd.bak.
On veut restaurer celle-ci sous le nom AutreBase mais la base de donnée NotreBase existe toujours sur le serveur.
Merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.