为什么Create Table会为主键创建一个奇怪的命名键?

时间:2015-12-16 23:17:53

标签: sql sql-server-2012

创建基本表时,主键名称是自动生成的。我原本以为放弃主键列的约束就足够了。

answersId

编辑:我怎么能自己命名?

2 个答案:

答案 0 :(得分:4)

CREATE TABLE [dbo].[TableExample] 
(
     [TEID] [int] IDENTITY(1,1) NOT NULL,
     CONSTRAINT [PK_TableExample] PRIMARY KEY CLUSTERED ([TEID] ASC)
)

答案 1 :(得分:0)

或者作为Sam的响应的一个较短的替代方案,如果您的主键位于单个列(最常见的是),您也可以使用它:

CREATE TABLE [dbo].[TableExample] 
(
     [TEID] [int] IDENTITY(1,1) NOT NULL
          CONSTRAINT [PK_TableExample] PRIMARY KEY CLUSTERED,
     OtherColumn1 INT,
     OtherColumn2 DATE,
     .....
)

您可以使用列直接“内联”定义约束及其名称。这也适用于其他约束(如默认约束或检查约束)。但是,如果您的主键,外键或其他约束是在多个列上定义的,则无效。