SQL2005的语法和SQL2000的语法有所不同,试了几次发现数据库无法使用备份和附加的方法转换到SQL2000。必须先转换成脚本文件,然后在2000中用这个脚本建立目标库,再用数据导入/导出把数据从2005导到2000即可,按SQL2005提供转换到SQL2000的方法,经过自定义生成的对象。如果想直接restore或附加应该是不行的, 用脚本+导数据肯定没有问题。
以下是SQL2005转到2000的步骤:
1. 生成for 2000版本的数据库脚本2005 的manger studio– 打开”对象资源管理器”(没有的话按F8), 连接到你的实例– 右键要转到2000的库– 任务– 生成脚本– 在”脚本向导”的”选择数据库”中, 确定选择的是要转到2000的库– 勾选”为所选数据库中的所有对象编写脚本”– 在接下来的”选择脚本选项”中, 找到”为服务器版本编写脚本”项, 选择”SQL Server 2000″– 其他选项根据需要设置– 最后把脚本保存到一个 .sql 脚本文件
2. 在2000中创建目标数据库在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库
3. 将数据从2005导到20002005 的manger studio– 打开”对象资源管理器”(没有的话按F8), 连接到你的实例– 右键要转到2000的库– 任务– 导出数据– 在”SQL Server 导入和导出向导”的”选择数据源”步骤中, 确定选择的是要导出的数据库– 在”选择目标”步骤中, 连接到 2000, 并选择步骤2新建的库– 在”选择源表和源视图”中, 选择所有的表– 最后完成
以下是SQL2005生成的脚本: 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 IF NOT EXISTS (Select * FROM sys.objects Where object_id = OBJECT_ID(N’[dbo].[web3_News]‘) AND type in (N’U')) 6 BEGIN 7 Create TABLE [dbo].[web3_News]( 8 [ID] [int] IDENTITY(1,1) NOT NULL, 9 [Title] [varchar](100) NULL,10 [Contents] [varchar](250) NULL,11 CONSTRAINT [PK_web3_News] PRIMARY KEY CLUSTERED 12 (13 [ID] ASC14 )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]15 ) ON [PRIMARY]16 END
再看一下SQL2000生成的的脚本: 1 if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[web3_News]‘) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) 2 drop table [dbo].[web3_News] 3 GO 4 5 Create TABLE [dbo].[web3_News] ( 6 [ID] [int] IDENTITY (1, 1) NOT NULL , 7 [Title] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL , 8 [Contents] [varchar] (250) COLLATE Chinese_PRC_CI_AS NULL 9 ) ON [PRIMARY]10 GO1112 Alter TABLE [dbo].[web3_News] WITH NOCHECK ADD 13 CONSTRAINT [PK_web3_News] PRIMARY KEY CLUSTERED 14 (15 [ID]16 ) ON [PRIMARY] 17 GO
把SQL2005下选用生成SQL2000的脚本在SQL2000下使用,结果出现了一些错误:
不知道是不是我的方法有问题,居然按微软的方法生成的脚本还是有错误,接下来我把WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]去掉,语法是没有错误了,但还是出现了两个错误,系统提示未能找到存储过程 ’sys.objects’,列名 ’object_id’ 无效,还要把sys.objects替换成dbo.sysobjects,object_id替换成id (把object_去掉)然后再运行才能正常。
本文来自博客,转载请标明出处:http://blog.csdn.net/doubaijun/archive/2008/10/22/3126301.aspx
转载于:https://www.cnblogs.com/hjqxaly/archive/2010/08/13/1798758.html