16

我在 SQL Server 2008 R2 中有一个数据库备份。当我想将此备份还原到 SQL Server 时,我收到此错误:“错误:指定的强制转换无效。(SqlManagerUI)”如何解决此错误?谢谢。

4

4 回答 4

17

当您尝试在较旧的 SQL 数据库中恢复较新版本的备份时,也会发生这种情况。例如,当您尝试恢复在 2012 年创建的具有 110 兼容性的数据库备份并且您尝试在 2008 R2 中恢复它时。

于 2013-07-29T05:58:52.730 回答
12

通过这个家伙将旧数据库恢复到 SQL 2008中有一些有趣的事情;你试过通过 TSQL 做吗?

Use Master
Go
RESTORE DATABASE YourDB
FROM DISK = 'C:\YourBackUpFile.bak'
WITH MOVE 'YourMDFLogicalName' TO 'D:\Data\YourMDFFile.mdf',--check and adjust path
MOVE 'YourLDFLogicalName' TO 'D:\Data\YourLDFFile.ldf' 
于 2012-04-12T14:21:31.413 回答
4

有时是因为2008年的store 2012 db这样的版本变化而发生的,那么如何检查呢?

RESTORE VERIFYONLY FROM DISK = N'd:\yourbackup.bak'

如果它给出如下错误:

消息 3241,级别 16,状态 13,第 2 行设备“d:\alibaba.bak”上的媒体系列格式不正确。SQL Server 无法处理此媒体系列。消息 3013,级别 16,状态 1,行 2 验证数据库异常终止。

进一步检查:

RESTORE HEADERONLY FROM DISK = N'd:\yourbackup.bak'

BackupName 为“ * INCOMPLETE * ”,Position 为“1”,其他字段为“NULL”。

意味着您的备份已损坏或取自较新版本。

于 2014-10-25T01:13:14.837 回答
0

我从 SQL Server 2012 恢复到 SQL Server 2008 R2 时遇到了类似的错误“指定的转换无效”

首先,我得到了 MDF 和 LDF 名称:

RESTORE FILELISTONLY 
FROM  DISK = N'C:\Users\dell laptop\DotNetSandBox\DBBackups\Davincis3.bak' 
GO

其次,我使用返回的这些名称使用 MOVE 进行了恢复:

RESTORE DATABASE Davincis3 
FROM DISK = 'C:\Users\dell laptop\DotNetSandBox\DBBackups\Davincis3.bak'
WITH 
   MOVE 'JQueryExampleDb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Davincis3.mdf', 
   MOVE 'JQueryExampleDB_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Davincis3.ldf', 
REPLACE
GO  

我不知道“JQueryExampleDb”这个名字,但这对我有用。

然而,备份(和数据库)不向后兼容旧版本。

于 2014-12-08T00:04:21.767 回答