高分告急:SQL Server 2005 怎样建库可以让 备份或者其它方式 在 SQL Server 2000 内恢复并使用

擒兽 2006-10-17 06:12:47
如题
...全文
1051 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxjgood66 2006-12-19
  • 打赏
  • 举报
回复
up
xx_adam 2006-10-18
  • 打赏
  • 举报
回复
微软的东西一般情况下向后兼容,不会向前兼容的
xx_adam 2006-10-18
  • 打赏
  • 举报
回复
邹大哥,侬是个好学习的人!

向你学习!也增长了经验.


OracleRoob 2006-10-18
  • 打赏
  • 举报
回复
版主盖棺定论:

直接恢复不行,可以通过生成脚本和导数据实现从2005到2000的转换。
zjcxc 2006-10-17
  • 打赏
  • 举报
回复
结论:
所谓的 2005 客户端连接 2000, 就可以恢复 2005 的库的结论是错误的.
zjcxc 2006-10-17
  • 打赏
  • 举报
回复
上述测试在同一台电脑的两个实例中进行, 一个是2000实例, 一个是2005实例.
测试均在 SQL Server Manger Studio 中执行语句.

在所有的测试步骤中, 我并未对数据库做任何处理, 所以不存在对象不兼容的问题.

zjcxc 2006-10-17
  • 打赏
  • 举报
回复
-- 步骤3. 在2000中恢复2005的备份

RESTORE DATABASE [jack_test]
FROM DISK = 'C:\jack_test.bak'
GO


-- 结果得到错误提示:
Msg 3205, Level 16, State 2, Line 1
Too many backup devices specified for backup or restore; only 64 are allowed.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
zjcxc 2006-10-17
  • 打赏
  • 举报
回复
-- 步骤2, 在2005中恢复, 然后生成2005的备份

RESTORE DATABASE [jack_test]
FROM DISK = 'C:\jack_test.bak'
GO

BACKUP DATABASE [jack_test]
TO DISK = 'C:\jack_test.bak'
WITH FORMAT
GO

DROP DATABASE [jack_test]
zjcxc 2006-10-17
  • 打赏
  • 举报
回复
-- 步骤1, 在sql 2000中生成备份文件

CREATE DATABASE [jack_test]
ON PRIMARY (
NAME = N'jack_test',
FILENAME = N'C:\jack_test.mdf' )
LOG ON (
NAME = N'jack_test_log',
FILENAME = N'C:\jack_test_log.ldf')
GO

BACKUP DATABASE [jack_test]
TO DISK = 'C:\jack_test.bak'
WITH FORMAT
GO

DROP DATABASE [jack_test]
GO


zjcxc 2006-10-17
  • 打赏
  • 举报
回复
刚刚特意测试了一下:
环境:
win2003+sp1
sql 2000 + sp3
sql 2005 + sp1

zjcxc 2006-10-17
  • 打赏
  • 举报
回复
用sql 2005 client side连接sql 2000 server,然后restore,这样,sql 2005的客户端可以认识sql 2005的备份格式,restore成功。

---------------------------------------------------------------------------
这种方法应该不行吧? sql是服务型数据库, 所有的处理都是由sql服务提供的(不然为什么恢复的时候, 访问备份文件是基于服务器的?), 所以按道理不存在2005的客户端连接2000可以认识2005备份格式的问题.
zjcxc 2006-10-17
  • 打赏
  • 举报
回复
直接restore应该是不行的, 用脚本+导数据肯定没有问题




2005转到2000的步骤步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
OracleRoob 2006-10-17
  • 打赏
  • 举报
回复

SQLServer2005数据库还原到SQLServer2000

http://dev.csdn.net/author/taito/840c28a03ec0432492db18a329125bb5.html



新技术前沿版主 athossmth 说可以,楼主可以试下:

用sql 2005 client side连接sql 2000 server,然后restore,这样,sql 2005的客户端可以认识sql 2005的备份格式,restore成功。

http://community.csdn.net/Expert/topic/4969/4969701.xml?temp=.9756891
OracleRoob 2006-10-17
  • 打赏
  • 举报
回复
微软的产品都是向前兼容,没有向后兼容的。
OracleRoob 2006-10-17
  • 打赏
  • 举报
回复
SQL Server 2000与SQL Server 2005的数据库格式不同。

SQL Server 2000的数据库可以附加到2005中,但是2005的数据库不能恢复或附加为2000。

可以将2005的对象生成脚本,在2000中执行。

总之,2000可以恢复为2005,2005不能直接恢复为2000。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧