![从备份恢复数据库时出错](https://linux22.com/image/537828/%E4%BB%8E%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E6%95%B0%E6%8D%AE%E5%BA%93%E6%97%B6%E5%87%BA%E9%94%99.png)
我已经备份了我的 SQL Server 2005 数据库,我想将其放在我的开发机器上(比通过远程桌面编写查询进行开发要快得多。)
我能够在工作时的一台机器上恢复它,所以我知道备份是好的(嗯,我认为它是好的 - 我确实必须将它复制到外部硬盘上,然后再将它复制到我当前的机器上)。
我收到的错误是这样的:
标题:Microsoft SQL Server Management Studio
服务器“XPS17200911\SQL2005”还原失败。(Microsoft.SqlServer.SmoExtended)
附加信息:
System.Data.SqlClient.SqlError: 文件“C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf”被“BankA_Tables02”(4) 和“BankA_Tables01”(3) 声明。WITH MOVE 子句可用于重新定位一个或多个文件。(Microsoft.SqlServer.Smo)
生成的 SQL 脚本(您知道我的意思)是这样的:
RESTORE DATABASE [TDC] FROM DISK = N'C:\Users\Matt\Desktop\banka.bak' WITH FILE = 1,
MOVE N'BankA' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.mdf',
MOVE N'BankA_Tables01' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables02' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables03' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Log' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ldf',
NOUNLOAD, REPLACE, STATS = 10
GO
我对其进行了一些格式化,但仅使用回车符。
我尝试用 Google 搜索这个垃圾,但具体文件名可能会搞砸它。此外,所有结果似乎都假设了一种简单的数据库格式(这个有 5 个文件,而不是像“普通”SQL Server 数据库那样只有 2 个文件),并且都处理了更改文件名的问题,而我并不知道思考这就是我的问题。
任何帮助将不胜感激。
答案1
它尝试将 3 个不同的文件恢复为相同的文件名。
将中间 3 个语句中的 3 个 TDC.ndf 名称更改为 TDC_01.ndf、TDC_02.ndf 和 TDC_03.ndf