问题一,还原失败提示
System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing 'XXX' database. (Microsoft.SqlServer.Express.Smo)
检查了一下发现原来是自己操作上的问题
原来在SQL2005还要在“选项”当中勾选覆盖现有数据库,并且选择目标数据库的路径,操作才会成功的。
习惯了SQL2000的操作,在SQL2005上就经常“粗心大意”了
问题二,还原数据库名问题
还源数据库时出现以下错误
System.Data.SqlClient.SqlError: 在对 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBusinessDB.mdf' 尝试 'RestoreContainer::ValidateTargetForCreation' 时,操作系统返回了错误 '5(拒绝访问。)'。 (Microsoft.SqlServer.Express.Smo)
原因分析:
没有对"C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQL"创建文件的权限(可以把它复制到data),这是SQL2005对文件夹的安全性限制。
解决办法:
修改文件夹到'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData”或其他盘的文件夹下(如E:mydb)即可。注意:mdf文件和ldf文件的路径都要修改。
其它参考
当还原数据库时,如果出现“为备份或还原操作指定的设备太多;只允许指定64个
设备。RESTORE DATABASE操作异常终止。”这个错误时,说明你是在把从SQLServer2005
上备份的数据还原到SQLServer2000数据库上。出现这个错误:
1.并不说明你的电脑系统
有问题(不用重装系统)。
2.你的SQLServer2005或SQLServer2000数据库安装的有问题(不
用重装数据库)。
3.不用破口大骂微软垃圾。
很简单,只要你连接上SQLServer2005的SQLEXPRESS实例。在SQLServer2005库上还
原即可。下载SQL Server Management Studio Express软件,这是用于连接管理
SQLServer2005的工具。可以帮助你还原数据库,强调一下,虽然使用
SQL Server Management Studio Express这个工具了,SQLEXPRESS这个实例才是你要连接
的2005数据库(.SQLEXPRESS)。而不是(.)或(local),如果是(.)或(local)说明你没有
连接上SQLServer2005数据库,还会报错,必须确信你真正连接上了SQLServer2005数据库。
最后总结一下:SQLServer2005和SQLServer2000的备份是不能通用的,因此,当还原
数据库时不能搞混,特别是,当从网上下载一些源代码,有些数据库的备份,没有注明是
2005还是2000的,当出现以上错误时,说明你是在把从SQLServer2005上备份的数据还原到
SQLServer2000数据库上。需要注意一下。