2010-05-02 66 views
0

我使用SQL 2008 - 生成腳本選項(Datbase->右鍵單擊 - >任務 - >生成腳本)在我的開發數據庫中編寫腳本並在暫存數據庫上運行它,但腳本拋出下面的錯誤爲每個表自動生成 - 在SQL 2008中創建表腳本引發錯誤

消息102,級別15,狀態1,行1 附近有語法錯誤('。消息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 

任何幫助將非常感激我的表的一個腳本。

+0

是的,這是正確的,我改變了CREATE ALTER,因爲表已經存在。但改變了ALTER Table的語法。現在工作。謝謝你們 – jack 2010-05-02 15:23:29

+0

如果@ gbn的回答是正確的,你應該'接受'它。 – egrunin 2010-05-02 17:32:53

回答

1

你給我的劇本是100%正確的,如果它是一個CREATE TABLE

作爲ALTER TABLE,這是完全錯誤的:這就是爲什麼你的錯誤......因爲代

劇本已經改變:SSMS不會給我「腳本作爲ALTER」選項

1

如果您嘗試腳本創建,然後在新的數據庫中運行它,你會不想'CREATE'而不是ALTER?我也沒有一個腳本作爲SSMS中的「改變」選項,所以正如gbn所說,它一定是被改變了。

編輯:作爲一個附註 - 你真的想要字段長度爲500的名字和姓氏?似乎過度。