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新建的库


-- 在"选择源表和源视图"中, 选择所有的表


-- 最后完成







以下是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] 

PR

IMARY 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_去掉)然后再运行才能正常。


 


      这是一个简单的表,相关定义不多,如果定义约束、因子填充等条件更多错误,没办法,暂时找不到解决的方法只能手工修改了,一个字,累……