SQL Server数据库还原错误:指定的强制转换无效。 (SqlManagerUI)

我使用SQL Server 2008 R2 Standard(版本10.50.1600.1)作为我的生产网站,SQL Server Express版本使用高级服务(v10.50.1600.1)作为数据库的本地主机。

几天后我的SQL Server崩溃了,我不得不在我的本地主机上安装一个新的2008 R2 Express版本。 当我恢复从Express版本采取一些旧版本,但是当我尝试从生产服务器采取.bak文件恢复数据库时,它工作正常,它会导致以下错误:

错误:指定的转换无效。 (SqlManagerUI)

当我尝试使用命令恢复数据库

 Use Master Go RESTORE DATABASE Publications FROM DISK = 'C:\Publications.bak' WITH MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path MOVE 'AlPublications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf' 

它会产生一个不同的错误

消息3154,等级16,状态4,行1
备份集保存了除现有“出版物”数据库之外的数据库的备份。
消息3013,级别16,状态1,行1
RESTORE DATABASE正在终止exception。

我已经交叉检查版本。 如下图所示,它们都与我相匹配

以前我能够从标准版本恢复数据库来expression版本,但现在失败了。 我删除了数据库,并试图重新创build它。 这也失败了。

我不知道我在做什么错。 我将不胜感激这方面的帮助

问题已解决,因为它似乎.bak文件已损坏。 当我用不同的文件尝试它时,它的工作。

GUI有时候会变幻无常。 使用T-SQL时出现的错误是因为您试图覆盖现有数据库,但没有指定覆盖/replace现有数据库。 以下可能工作:

 Use Master Go RESTORE DATABASE Publications FROM DISK = 'C:\Publications_backup_2012_10_15_010004_5648316.bak' WITH MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path MOVE 'Publications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf' , REPLACE -- Add REPLACE to specify the existing database which should be overwritten. 

可能是因为将SQL Server 2012版本备份文件还原到SQL Server 2008 R2甚至更less。

终于得到这个错误消失的恢复。 我感到沮丧,但是我想这可能仍然在2008R2上工作。 我不得不使用逻辑名称:

 RESTORE FILELISTONLY FROM DISK = 'location of your.bak file' 

从那里我用MOVE使用逻辑名称运行一个恢复语句。

 RESTORE DATABASE database1 FROM DISK = '\\database path\database.bak' WITH MOVE 'File_Data' TO 'E:\location\database.mdf', MOVE 'File_DOCS' TO 'E:\location\database_1.ndf', MOVE 'file' TO 'E:\location\database_2.ndf', MOVE 'file' TO 'E:\location\database_3.ndf', MOVE 'file_Log' TO 'E:\location\database.ldf' 

当它恢复时,我几乎欢乐的哭了起来。

祝你好运!