使用 BACKUP DATABASE
命令在笔记本电脑上复制了一个 SQL Server Express 数据库,现在我正尝试使用 T-SQL 语句将它恢复到另一台计算机:
RESTORE DATABASE [OurDB]
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part2.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part3.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part4.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part5.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part6.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part7.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part8.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part9.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part10.bak'
WITH REPLACE
GO
但是当它试图恢复时我得到了错误
Msg 5133, Level 16, State 1, Line 1
Directory lookup for the file "c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\AppConfig_Data.ndf" failed with the operating system error 3 (failed to retrieve text for this error. Reason: 1815).
还有其他几个,都是类似的错误。问题是 SQL Server 似乎正在尝试将数据库还原到目录 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\
,即源计算机上的数据目录备份取自。
但是在新电脑上我要恢复到SQL Server的数据路径是C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
如何更改数据文件中的路径以使其恢复到正确位置?
最佳答案
您需要向 RESTORE 命令添加额外的信息来定义这些位应该去哪里 - 类似于:
RESTORE DATABASE [OurDB]
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak',
MOVE N'Your_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB.mdf',
MOVE N'Your_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB_Log.ldf'
关于sql-server - SQL 服务器 : force Backup/Restore location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7089307/