SQL Server使用标识和主键编写数据库脚本

时间:2016-12-20 18:01:55

标签: sql-server

我正在尝试使用SSMS编写整个数据库的脚本。我注意到它没有 脚本标识列或主键。这是否正确似乎很奇怪。 有没有人可以推荐的工具来完成这项任务?

CREATE TABLE [dbo].[DRIVERS]
(
    [ID] [int] NOT NULL,
    [BADGENUM] [int] NOT NULL,
    [NAME] [varchar](50) NOT NULL,
    [MOBILETEL] [varchar](50) NULL,
    [HOMETEL] [varchar](50) NULL,
    [ADDRESS1] [varchar](50) NULL,
    [ADDRESS2] [varchar](50) NULL,
    [ADDRESS3] [varchar](50) NULL,
    [TOWN] [varchar](50) NULL,
    [POSTCODE] [varchar](50) NULL,
    [BADGEEXPIRES] [datetime] NOT NULL,
    [COMMENTS] [varchar](250) NULL,
    [DISABLED] [bit] NOT NULL,
    [ACTIVE] [bit] NOT NULL,
    [ONSHIFT] [bit] NOT NULL,
    [PIN] [nvarchar](50) NOT NULL,
    [SCHOOLSOK] [bit] NOT NULL,
    [EMAIL] [varchar](50) NULL
) ON [PRIMARY]

ID列应为自动增量标识和主键。

1 个答案:

答案 0 :(得分:0)

你可以发布它为其中一个表生成的脚本吗?根据我的经验,SSMS Generate Scripts将包含主键,但它们不是列定义的一部分。

例如:

CREATE TABLE [dbo].[test](
[a] [int] NOT NULL PRIMARY KEY,
[b] [int] NOT NULL,
) 

在生成脚本时成为

CREATE TABLE [dbo].[test](
[a] [int] NOT NULL,
[b] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
[a] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

主键仍然是定义的,但生成的脚本使用正式的详细语法。