如何自动增加表中的列?
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 是对于空表很好,但如果您有现有数据,请将种子设置为大于最大记录)。
【讨论】:
以上是关于如何自动增加表中的列?的主要内容,如果未能解决你的问题,请参考以下文章