如何在 sql server 内置的 Visual Studio 中自动增加主键?

Posted

技术标签:

【中文标题】如何在 sql server 内置的 Visual Studio 中自动增加主键?【英文标题】:how to auto increment primary key in visual studio built in sql server? 【发布时间】:2013-05-02 07:25:06 【问题描述】:

我正在使用 Visual Studio 2010 高级版,我使用 Visual Studio 数据库工具创建了一个数据库。我将一个字段设置为主键,我想让它自动递增。

但是当我查看属性时,它是不活动的。我的意思是我无法使用 Visual Studio 2010 高级内置数据库工具进行设置。我无法设置身份规范。是因为我使用的是 Visual Studio 2010 高级版吗?如何使 productID 列自动递增?

【问题讨论】:

【参考方案1】:

要使主键列自动递增,您需要将其创建为 intIDENTITY 例如:

[Id] INT NOT NULL PRIMARY KEY IDENTITY, 

或通过 Visual Studio (2017):

右键单击列 > 属性 > 身份规范 > 是身份 >

【讨论】:

【参考方案2】:

将其数据类型更改为int(或类似)。您不能在 nchar(10) 列上设置 IDENTITY 规范。

来自CREATE TABLE

身份

表示新列是标识列。向表中添加新行时,数据库引擎会为该列提供唯一的增量值。标识列通常与 PRIMARY KEY 约束一起使用,作为表的唯一行标识符。 IDENTITY 属性可以分配给 tinyint、smallint、int、bigint、decimal(p,0) 或 numeric(p,0) 列。每个表只能创建一个标识列。绑定默认值和 DEFAULT 约束不能与标识列一起使用。必须指定种子和增量,或者两者都不指定。如果两者都没有指定,则默认为 (1,1)。

(我的强调

【讨论】:

再问一个问题?你能写一个简单的示例插入语句吗,因为productID会自动增加我会插入productName吗??? 我不知道你在那里要求什么。 比如插入到产品(productID,productName)值(????,textBox1.Text)的????部分?我是否必须为自动递增的主键赋值? 在列列表和VALUES:INSERT INTO Product (ProductName) VALUES (textBox1.Text) 中都错过了该列。如果您需要知道分配了什么值,您需要查看OUTPUT clause 或SCOPE_IDENTITY

以上是关于如何在 sql server 内置的 Visual Studio 中自动增加主键?的主要内容,如果未能解决你的问题,请参考以下文章