如何在我的表中自动递增列?

16

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

4个回答

32

将身份规范设置为是

在此输入图片描述

示例 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

9
非常感谢,特别是发布屏幕截图。我对这个社区的乐于助人感到不断惊讶。 - Ace Troubleshooter

6
在 SQL Server 08 中,您希望将“Identity”属性设置为“是”,并定义其初始值(默认为1)以及增量(也默认为1)。这将导致在每个新记录上递增1。

3

你需要在SQL中使用身份验证属性。

它在属性窗口底部 - 抱歉,我没有运行Windows。

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

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接