我用上面的方法有错,2005生成的代码是 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[BackNumber]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[BackNumber]( [back_ID] [int] NOT NULL, [back_CardId] [varchar](10) NOT NULL, [back_RegDate] [datetime] NULL, [back_Date] [datetime] NULL, [back_machineId] [int] NOT NULL ) ON [PRIMARY] END要把sys.objects改成dbo.sysobjects,把object_id改成id,如果表少可以改,但是表很多,关系也多的时候就很麻烦了。请高手赐教!
楼主可以试试~~
如题,若使用SQL2000附加SQL2005的数据库时在附加时会出现了错误602,提示“对sysindexes运行DBCC CHECKTABLE”因为数据库附加到2005的时候, 数据库文件已经自动升级到2005, 所以在2000下是无法再附加的(没有向上兼容的)直接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新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[BackNumber]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[BackNumber](
[back_ID] [int] NOT NULL,
[back_CardId] [varchar](10) NOT NULL,
[back_RegDate] [datetime] NULL,
[back_Date] [datetime] NULL,
[back_machineId] [int] NOT NULL
) ON [PRIMARY]
END要把sys.objects改成dbo.sysobjects,把object_id改成id,如果表少可以改,但是表很多,关系也多的时候就很麻烦了。请高手赐教!