如何在 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 中自动增加主键?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 SQL Server Management Studio 的情况下在 SQL Server Express LocalDB 中使用 Visual Studio 2013 创建两个表之间的关

如何在 Visual Studio 2013 中配置 SQL Server 以允许远程连接

如何在 Visual Studio 2012 中查看 SQL Server CE 系统表

SQL-server 如何与 visual studio 建立连接

如何将 Visual Studio 2010 网站连接到 SQL Server 2005

如何在 Visual Studio 2012 中使用 SQL Server Express 2008 部署 wpf 应用程序?