自动生成 - SQL 2008中的CREATE表脚本会引发错误

时间:2010-05-02 10:57:27

标签: sql tsql sql-server-2008

我使用SQL 2008编写了我的dev数据库中的表 - 生成脚本选项(Datbase->右键单击 - >任务 - >生成脚本)并在登台数据库上运行它,但脚本抛出以下错误对于每个表

  

Msg 102,Level 15,State 1,Line 1   '('。Msg 319附近的语法不正确,   等级15,状态1,行15不正确   关键字'with'附近的语法。如果   这个陈述是一个常见的表格   表达式,xmlnamespaces子句或   一个变更跟踪上下文子句,   必须终止先前的陈述   用分号。

以下是我的一个表

的脚本
ALTER TABLE [dbo].[Customer](
    [CustomerID] [int] IDENTITY(1,1) NOT NULL,
    [FirstName] [nvarchar](500) NULL,
    [LastName] [nvarchar](500) NULL,
    [DateOfBirth] [datetime] NULL,
    [EmailID] [nvarchar](200) NULL,
    [ContactForOffers] [bit] NULL,
 CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
(
    [CustomerID] 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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果是CREATE TABLE

,您提供的脚本100%正确无误

作为ALTER TABLE,这是完全错误的:这就是你得到错误的原因......

自生成以来脚本已更改:SSMS不会将“脚本作为ALTER”选项

答案 1 :(得分:1)

如果您尝试编写创建脚本,然后在新数据库中运行它,您不想要'CREATE'而不是ALTER吗?我也没有SSMS中的'alter'选项,所以gbn说,它必须已经改变。

编辑:作为附注 - 您是否真的希望首字母和姓氏的字段长度为500?似乎过度。