SQL SERVER2005里的建表语句在SQL SERVER2000里出错了

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:28:04
我写好了个ASP程序 用的是2005的数据库 因为要放在免费空间 所以要改用2000的数据库 我设想是用2005的建库语句是一样能在2000里建好表的 所以就把所有SQL语句在2000里执行了 结果提示 每个WITH 后面的‘(’附近有语法错误!希望哪位达人能帮忙解决下。如下所示:
CREATE TABLE [dbo].[Area](
[AreaID] [int] IDENTITY(1,1) NOT NULL,
[AreaName] [nvarchar](50) NOT NULL,
[AreaEnName] [nvarchar](10) NOT NULL,
[AreaParent] [int] NOT NULL,
CONSTRAINT [PK_Area] PRIMARY KEY CLUSTERED
(
[AreaID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Area](
[AreaID] [int] IDENTITY(1,1) NOT NULL,
[AreaName] [nvarchar](50) NOT NULL,
[AreaEnName] [nvarchar](10) NOT NULL,
[AreaParent] [int] NOT NULL,
CONSTRAINT [PK_Area] PRIMARY KEY CLUSTERED
(
[AreaID] ASC
)--WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

去掉 所有的 go,[dbo]

微软的东西都是向下兼容,不向上兼容。
说白了就是2005中可以执行2000的语句,但是2000中不一定就可以执行2005的语句。
举个简单的例子2000的系统表是sysobjects,而2005的是sys.objects
2005的语法比2000要多。

所以2005的建库语句是不能直接在2000中进行执行的。需要进行一定得转换。