今天我注意到了一個奇怪的行爲SQL Server 2008 R2
的「Script Table As..
」和「Generate Script
」功能。創建表腳本在alter語句中添加列
我在數據庫中有一個表。並且使用ALTER
查詢,我在該現有表上插入了一個新列。
現在,我想CREATE TABLE
腳本爲同一張表。所以我右鍵單擊該表並從上下文菜單中選擇「Script Table As -> CREATE TO -> New Query Window
」選項。
我很驚訝在CREATE
表查詢在新的查詢窗口中找到ALTER
表腳本。
結果我在新的查詢窗口得到的是如下:
/****** Object: Table [dbo].[TblMember] Script Date: 11/23/2013 18:47:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TblMember](
[Id] [int] IDENTITY(1,1) NOT NULL,
[First_Name] [varchar](50) NULL,
[Middle_Name] [varchar](50) NULL,
[Last_Name] [varchar](50) NULL,
[Gender] [varchar](10) NULL,
) ON [PRIMARY]
SET ANSI_PADDING OFF
ALTER TABLE [dbo].[TblMember] ADD [Religion] [varchar](50) NULL
ALTER TABLE [dbo].[TblMember] ADD [RaceId] [int] NULL
/****** Object: Index [PK_TblMember] Script Date: 11/23/2013 18:47:26 ******/
ALTER TABLE [dbo].[TblMember] ADD CONSTRAINT [PK_TblMember] 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]
GO
SET ANSI_PADDING OFF
GO
而且我已經嘗試了「Generate Script
」,卻發現同樣的結果。
誰能告訴我爲什麼要添加一個alter query,而不是直接向表中添加列?
感謝