今天无意中将SQL2000的数据库文件附加到SQL2005中,并且感觉就象SQL2000中一样,过去曾用SQL2000的备份文件还原,不成功,就以为SQL2005不兼容SQL2000的数据库
我曾试过升级SQL2000数据库,升级后表的结构被修改,无法使用,一直很郁闷,过两天我再看一下将SQL2000的数据库文件在SQL2005中使用的情况.
一般的数据迁移是没有什么问题,但是要注意你的存储过程或函数中如果应用到了系统表或系统视图,要注意修改成对应在SQL2005下的schema名称(sys)!
还有xp_cmdshell在SQL2005中已经作为高级选项了,不能够直接使用。
要是原来的程序中用到了,在2005中使用xp_cmdshell前请先打开高级选想开关:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
SQL2005备份还原问题
新装了SQL Server 2005,想把原来旧版本SQL的数据库备分还原到SQL2005上去,结果无法还原,错误信息为:
备份集中的数据库备份与现有的 'foofoo' 数据库不同。
相同问题求救的有:
* sql server2005还原数据库文件和文件组总是提示“备份集中数据库备份与现有XX数据库不同”
* SQL Server 2005还原问题
参考网友意见,注意以下几点,最终还原成功。
* 不要新建数据库,应该把已经存在的foofoo库删除, 直接在还原的时候, 指定还原后的库名为foofoo。
* 必须在选项中确认还原的目录存在。还原的两个数据库文件会新建,但是目录不存在就会失败。该还原路径是原数据库的路径,可以更改,至少目录名可以更改,但要保证更改后的目录存在。
* 有些网友提出数据库名要与原数据库名一致。在SQL2005中实验证明数据库名可以改变。
参考以下网友贴子:
[1] SQL7如何升级到SQL2005??
[2] sql2000里备份的数据库文件无法在2005里还原啊?
(转载请注明来源于金庆的专栏)
还原详细错误信息如下:
===================================
还原 对于 服务器“DATA-SERVER”失败。 (Microsoft.SqlServer.Smo)
------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=还原+Server&LinkId=20476
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
在 Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseOptions.RunRestore()
===================================
System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'foofoo' 数据库不同。 (Microsoft.SqlServer.Smo)
------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&LinkId=20476
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQueryWithMessage(StringCollection queries, ServerMessageEventHandler dbccMessageHandler, Boolean errorsAsMessages)
在 Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(Server server, StringCollection queries)
在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jq0123/archive/2007/06/27/1668731.aspx
1.不要象SQL2000一样先建数据库
2.在 目标数据库 指定数据库名字
3.在选项中修改保存路径
4.成功还原