Frage

Ich bin mit diesem Code:

RESTORE DATABASE [MyDB_2009May11] 
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak' 
WITH  
MOVE N'Archive_Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Log' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',  
NOUNLOAD,  
STATS = 10
GO

Ich erhalte diese Fehlermeldung:

Msg 3176, Ebene 16, Status 1, Zeile 1 Die Datei 'C: \ Programme \ Microsoft SQL Server \ MSSQL10.SQL2008 \ MSSQL \ DATA \ MyDB_2009May11.mdf' wird behauptet, die von 'Archive_Data' (3) und 'Daten' (1). Die MOVE-Klausel WITH kann verwendet werden, eine oder mehr Dateien zu verlegen. Msg 3013, Ebene 16, Status 1, Zeile 1 RESTORE DATABASE wird nicht normal beendet.

Wie der Mist migriere ich von SQL Server 2000 auf 2008, als alles, was ich die Backup-Datei ist?

:) Jede Hilfe ist willkommen.

War es hilfreich?

Lösung

ein Auswahl tun * aus Sysaltfiles und schauen Sie sich die richtigen Dateinamen und dann die Namen in der Bewegung entsprechend ändern zu trennen

Dies gibt Ihnen die Namen aller Dateigruppen zur Zeit

select filename from master..sysaltfiles
where name = 'MyDB_2009May11'

Wenn Sie nicht über die databse scripted haben noch dann tun dies zuerst. sicherstellen, dass die Ordner vorhanden ist, könnten Sie auch die Dateigrößen ändern möchten

    CREATE DATABASE [MyDB_2009May11] ON (NAME = N'Data',
    FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf'
     , SIZE = 12, FILEGROWTH = 10%),
     (NAME = N'Archive_Data',
    FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf'
     , SIZE = 12, FILEGROWTH = 10%)
    LOG ON (NAME = N'Log', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf'
     , SIZE = 21, FILEGROWTH = 10%)
     COLLATE SQL_Latin1_General_CP1_CI_AS

die nun wieder herstellen soll dies sein, bemerken die NDF-Erweiterung für das Archiv Dateigruppe

RESTORE DATABASE [MyDB_2009May11] 
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak' 
WITH  
MOVE N'Archive_Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf',  
MOVE N'Log' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',  
NOUNLOAD,  
STATS = 10
GO

Andere Tipps

Sie versuchen Archive_Data und Daten auf die gleiche Datei zu bewegen - ändern Sie die Dateinamen und Sie sollten in Ordnung sein:)

ich in dieses Problem lief als gut, und nur ein wenig Zusatz auf Mir hatte die REPLACE Klausel zu verwenden, da die Datenbank ich anders war als die Wiederherstellung wurde als in der Datenbanksicherung:

RESTORE DATABASE [MyDB_2009May11]  
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak'  
WITH   
MOVE N'Archive_Data'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',   
MOVE N'Data'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf',   
MOVE N'Log'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',   
**REPLACE**,
NOUNLOAD,   
STATS = 10 
GO 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top