如果需要把sql server 2005数据库整个转换到SQL 20000数据库,包括数据表,索引,视图,存储过程以及数据,是不容易的,网上有很多方法,但根据我的实践,以下方法最好、最安全、最可行:
1. 在同一台机器上安装SQL Server2005和你的数据库,然后同一台机器上安装sql 2000
2. 两个实例都起来后,进入SQL Server2005企业管理器(Management studio)
3. 对你的数据库点击右键,“任务”-“生成脚本”
4. 在向导中选择勾选"为所选数据库中的所有对象编写脚本"
5. 在向导中选项一页找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
6. 生成脚本到文件或查询窗口均可
7. 在Sql 2000上建一个数据库,名字一样
8. 进入SQL Server2005企业管理器(Management studio),连接上Sql 2000的实例
9. 执行刚才生成的脚本(建立数据表,索引,视图,存储过程)
10. 执行可能出错,注意建表的先后顺序,注意你的存储过程语句,失败的话检查顺序和SQL语句重新执行
11. 检查数据表,索引,视图,存储过程是否都已经建立
12. 开始倒数据
12. 进入SQL Server2005企业管理器(Management studio),右键你的数据库,“任务”-“导出数据”
13. 在向导页面选择源和目标
14. 选择所有表
15. 注意如果你的表有依赖关系和先后顺序,最好先检查dependency依赖关系,先倒入基本表
16. 注意如果你的表有自增字段,忽略这个字段!(见下图)
17. 执行,倒入所有数据
以上步骤实际检验通过。
最后需要注意的是:如果你用了SQLServer2005的新功能,这些功能在SQL 2000里面没有,切记改回来,例如,ROW_NUMBER只有2005支持,又如,如下的语法在sql2000里面是会报错的 :
SET @abc =10
SELECT TOP (@abc) * FROM users;
如果你的存储过程里面用了动态sql语句,这些只有运行时报错,平时是不会检查出来了。