首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL Server数据库还原错误:指定的转换无效。(SqlManagerUI)

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

Stack Overflow用户
提问于 2012-11-28 20:07:02
回答 4查看 427.5K关注 0票数 92

我使用SQL Server2008SQL Server2008 R2标准版(版本10.50.1600.1)作为生产网站,将带有高级服务的SQL Server Express版本(版本10.50.1600.1)作为数据库用于本地主机。

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

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

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

代码语言:javascript
复制
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行

备份集保存现有“”发布“”数据库以外的数据库的备份。“”

Msg 3013,Level 16,State 1,Line 1

还原数据库异常终止。

我已经交叉核对过版本了。在我看来,它们都是匹配的,如下图所示

以前,我可以将数据库从标准版恢复到express版,但现在失败了。我删除了数据库并尝试重新创建它。这也是失败的。

我不确定我做错了什么。我希望在这方面能帮上忙

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-28 20:20:34

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

代码语言:javascript
复制
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.
票数 40
EN

Stack Overflow用户

发布于 2013-10-14 11:38:23

可能是因为将SQL Server2012版本的备份文件恢复到SQL Server2008 R2中,甚至更少。

票数 164
EN

Stack Overflow用户

发布于 2013-07-11 00:20:57

最终得到此错误,以便在恢复时消失。出于挫败感,我转到了SQL2012,但我猜这可能在2008R2上仍然有效。我不得不使用逻辑名称:

代码语言:javascript
复制
RESTORE FILELISTONLY
FROM DISK = ‘location of your.bak file’

然后,我使用逻辑名称通过MOVE运行了一条restore语句。

代码语言:javascript
复制
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'

当它修复完成时,我几乎高兴得流下了泪。

祝好运!

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13604720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档