如何自动增加表中的列?

Posted

技术标签:

【中文标题】如何自动增加表中的列?【英文标题】:How do I auto-increment a column in my table? 【发布时间】:2011-04-14 20:22:35 【问题描述】:

我正在使用 Sql Server 2008 在 Visual Studio2010 中使用产品实例表构建数据库,我需要使 ProductId 列自动递增,但我在列属性菜单中找不到该属性。如果相关的话,我正在使用 c# 和 asp.net。我已经看到了创建表并将列设置为自动增量的代码,但由于这是我第一次使用编码,我不知道将代码放在哪里。如果有意义的话,我知道创建新表的唯一方法是通过 VS gui。

【问题讨论】:

【参考方案1】:

将身份规范设置为是

示例 SQL:

CREATE TABLE [dbo].[HomePageImages](
    [RecordId] [int] IDENTITY(1,1) NOT NULL,
    [AlternateText] [varchar](100) NOT NULL,
    [ImageName] [varchar](50) NOT NULL,
    [NavigateUrl] [varchar](200) NOT NULL,
    [ImageUrl]  AS ('/content/homepageimages/'+[ImageName]),
    [DisplayFrom] [datetime] NULL,
    [DisplayTo] [datetime] NULL,
 CONSTRAINT [PK_HomePageImages] PRIMARY KEY CLUSTERED 
(
    [RecordId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

【讨论】:

非常感谢,特别是发布截图。我一直对这个社区的乐于助人感到惊讶。【参考方案2】:

在 SQL Server 08 中,您希望将“Identity”属性设置为“是”并定义它的初始值(默认为 1)及其增量(也默认为 1)。

这将导致它在每条新记录上增加 1。

【讨论】:

【参考方案3】:

你需要在sql中使用identity yes属性。

它在底部的属性窗口中 - 抱歉没有运行窗口。

这将在每次插入新记录时自动增加您的 ID。

要获取 id 值,您可以使用 sqls SCOPE_IDENTITY() 函数来检索创建的 id。

【讨论】:

【参考方案4】:

在 SSMS 中,在对象资源管理器中找到您的表,右键/单击,然后选择设计。选择要自动递增的列,然后查看下面的“列属性”部分。应该有一个带有 [+] 符号的身份规范项。展开它,为“Is Identity”选择“Yes”,如有必要,设置增量(有时您可能希望新值比上一个多一个)和起始值作为“种子”(1 是对于空表很好,但如果您有现有数据,请将种子设置为大于最大记录)。

【讨论】:

以上是关于如何自动增加表中的列?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用计数查询来(自动)更新表中的列

Oracle过程增加字符串数据类型并将其存储为表中的列之一

在另一个表中插入一行时如何自动增加一个表中的值

如何根据从另一个表中选择的结果更新一个表中的列

如何增加(更新)SQL 表中的单元格?在查询中

MySQL之数据库和表的基本操作(建立表删除表增加删除表中的列)