1SET ANSI_NULLS ON 2GO 3SET QUOTED_IDENTIFIER ON 4GO 5IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[web3_News]') AND type in (N'U')) 6BEGIN 7CREATE 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] 16END
再看一下SQL2000生成的的脚本:
1if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[web3_News]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 2drop table [dbo].[web3_News] 3GO 4 5CREATE 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] 10GO 11 12ALTER TABLE [dbo].[web3_News] WITH NOCHECK ADD 13 CONSTRAINT [PK_web3_News] PRIMARY KEY CLUSTERED 14 ( 15 [ID] 16 ) ON [PRIMARY] 17GO
把SQL2005下选用生成SQL2000的脚本在SQL2000下使用,出现了一些错误
不知道是不是我的方法有问题,居然按MS的方法生成的脚本还是有错误,接下来我把WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]去掉,语法是没有错误了,但还是出现了两个错误,系统提示未能找到存储过程 'sys.objects',列名 'object_id' 无效,还要把sys.objects替换成dbo.sysobjects,object_id替换成id (把object_去掉)然后再运行才能正常。
这是一个简单的表,相关定义不多,如果定义约束、因子填充等条件更多错误,没办法,暂时找不到解决的方法只能手工修改了,一个字,累……
希望各位高手们提供更好的方法给俺也来学习一下咯,就转一下MS的一篇文章过来吧,如下:
您可以使用生成 SQL Server 脚本向导或对象资源管理器创建脚本。
生成脚本向导将引导您完成创建脚本的各个步骤,并允许您同时选择要创建脚本的各种对象。该向导提供各种用于创建脚本的选项,包括是否包含权限、排序规则、约束等。为大量对象创建脚本时,请使用该向导。有关生成 SQL Server 脚本向导的详细信息,请参阅生成 SQL Server 脚本向导的 F1 帮助。
在对象资源管理器中,展开“数据库”,右键单击某个数据库,指向“任务”,然后单击“生成脚本”。
按照向导中的步骤,创建数据库对象的脚本。
使用对象资源管理器可以快速创建整个数据库的脚本,也可以使用默认选项创建单个数据库对象的脚本。您可以在查询编辑器窗口中对文件或剪贴板创建脚本。
您可以创建用于创建或删除对象的脚本。有些对象类型具有其他脚本选项,如 ALTER、SELECT、INSERT、UPDATE、DELETE 和 EXECUTE。
有时您可能需要使用具有多个选项的脚本,如删除一个过程然后创建一个过程,或者创建一个表然后更改一个表。若要创建组合的脚本,请将第一个脚本保存到查询编辑器窗口中,并将第二个脚本保存到剪贴板上,这样就可以在窗口中将第二个脚本粘贴到第一个脚本之后。
若要为某个对象编写脚本,请展开对象资源管理器并找到该对象。右键单击该对象,再单击“编写 <对象类型> 脚本为”。
在对象资源管理器中,连接到 SQL Server Database Engine 实例,然后展开该实例。
展开“数据库”,右键单击要创建脚本的数据库,指向“编写数据库脚本为”,再指向“创建到”,然后单击“新查询编辑器窗口”。
Because of the cache,you may see your comments several minutes later.