SQL SERVER - RESTAURER UNE BASE DEPUIS UN BACKUP

Messages postés
45
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
24 février 2009
- - Dernière réponse : 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 -
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
-
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
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
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
-
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