什么';这个SQL Create Table语句有什么问题?

什么';这个SQL Create Table语句有什么问题?,sql,sql-server,create-table,Sql,Sql Server,Create Table,此SQL查询由SQL Server Management Studio生成,它向我抛出一个错误: USE [database_name] GO /****** Object: Table [dbo].[UserAddress] Script Date: 02/17/2010 11:21:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]

此SQL查询由SQL Server Management Studio生成,它向我抛出一个错误:

USE [database_name]
GO
/****** Object:  Table [dbo].[UserAddress]    Script Date: 02/17/2010 11:21:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[UserAddress]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [UserID] [int] NULL,
    [AddressName] [nvarchar](25) NULL,
    [Fname] [nvarchar](15) NULL,
    [LName] [nvarchar](20) NULL,
    [City] [nvarchar](15) NULL,
    [Street] [nvarchar](30) NULL,
    [StreetNum] [nvarchar](5) NULL,
    [FloorNum] [int] NULL,
    [AptNum] [int] NULL,
    [ZipCode] [int] NULL,
    [Phone] [varchar](15) NULL,
    [Phone_Prefix] [int] NULL,
    [CellPhone] [varchar](15) NULL,
    [CellPhone_Prefix] [int] NULL,
    [Fax] [varchar](15) NULL,
    [Fax_Prefix] [int] NULL,
    [Primary] [bit] NULL,
    CONSTRAINT [PK_UserAddress] PRIMARY KEY CLUSTERED 
    (
        [ID] 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
SET ANSI_PADDING OFF
错误是:
Msg 170,级别15,状态1,第27行第27行:“(”)附近的语法不正确。
指向
[mobile_Prefix][int]NULL,
,但我觉得这行很好。
有什么问题吗?
编辑:
我刚刚把这封信注释掉了

 CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
(
    [ID] ASC,
    [ClientStoreID] ASC,
    [Uname] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
而现在它起作用了,为什么?
编辑2:
我把范围缩小到:

WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  

我在这里遗漏了什么吗?

我认为这取决于SQL server数据库版本

我尝试使用SSMS 2005对SQL server 2000数据库进行查询,结果失败,错误与您描述的相同

当我连接到SQLServer2005服务器时,查询执行得非常完美

您是否确实检查了服务器版本,而不仅仅是SSMS版本

根据语法,WITH part只允许设置FillFactor,其他不允许:

< table_constraint > ::= [ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY | UNIQUE }
    [ CLUSTERED | NONCLUSTERED ]
    { ( column [ ASC | DESC ] [ ,...n ] ) }
    [ WITH FILLFACTOR = fillfactor ]
    [ ON { filegroup | DEFAULT } ]
] 
::=[constraint\u name]
{[{主键|唯一}
[聚集的|非聚集的]
{(列[ASC | DESC][,…n])}
[带FILLFACTOR=FILLFACTOR]
[在{filegroup | DEFAULT}上]
] 
这与/syntax不同,后者允许括号内有多个选项:

< table_constraint > ::= [ CONSTRAINT constraint_name ] 
{  { PRIMARY KEY | UNIQUE } 
    [ CLUSTERED | NONCLUSTERED ] 
    (column [ ASC | DESC ] [ ,...n ] ) 
    [ WITH FILLFACTOR = fillfactor | WITH ( <index_option> [ , ...n ] ) ]
    [ ON { partition_scheme_name (partition_column_name) | filegroup | "default" } ] 
    .
    .
    .
}
::=[constraint\u name]
{{主键|唯一}
[聚集的|非聚集的]
(列[ASC | DESC][,…n])
[带填充因子=填充因子|带([,…n])]
[关于{partition_scheme_name(partition_column_name)|文件组|“default”}]
.
.
.
}

在SQL Server 2005上对我来说很好。您使用的是什么版本?我只是在我的studio中复制粘贴了您的代码,它创建了表,没有任何问题。如果您使用SSMS运行SQL,请确保在运行它时没有突出显示查询的一部分-如果您这样做,它将只执行突出显示的部分。@adrianbanks:否我不知道为什么人们使用查询来创建表,而不是简单地使用一些客户端软件。谢谢,这以后不会给我带来任何麻烦吗?@the_drow:取决于你在做什么。SQL server 2008链接涵盖了所有选项的含义(你只需在页面中搜索即可)。这些选项在sql server 2000中显然不受支持,因此您需要阅读它们,并检查您是否依赖它们在应用程序中的任何行为。