-- 打开\"对象资源管理器\"(没有的话按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新建的库 -- 在\"选择源表和源视图\"中, 选择所有的表 -- 最后完成
以下是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] ASC
14 )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 GO 11
12 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_去掉)然后再运行才能正常。
这是一个简单的表,相关定义不多,如果定义约束、因子填充等条件更多错误,没办法,暂时找不到解决的方法只能手工修改了,一个字,累……
因篇幅问题不能全部显示,请点此查看更多更全内容