SQL SERVER - RESTAURER UNE BASE DEPUIS UN BACKUP

cs_dhardy Messages postés 45 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 24 février 2009 - 12 mars 2007 à 13:24
dymsbess Messages postés 56 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 4 janvier 2010 - 3 juin 2009 à 18:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35528-sql-server-restaurer-une-base-depuis-un-backup

dymsbess Messages postés 56 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 4 janvier 2010 1
3 juin 2009 à 18:36
Pour une restauration dynamique à partir d'un chemin, voir PS :

http://www.xoowiki.com/Article/SQL/restauration-dynamique-20.aspx
cs_dhardy Messages postés 45 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 24 février 2009
13 mars 2007 à 09:11
Bonjour,

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é.
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
12 mars 2007 à 16:23
Bonjour,
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]
cs_dhardy Messages postés 45 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 24 février 2009
12 mars 2007 à 13:24
Bonjour,

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
Rejoignez-nous