注册时添加SQL Server ID增量

时间:2017-02-11 02:23:39

标签: c# sql sql-server

我如何从我的SQL Server表中检索Id,向其添加+1,并在有人注册到我的程序时将该号码注册到下一个ID?

到目前为止,这是我的代码。 ??意味着我不知道会有什么用于此工作。

SqlCommand hi = new SqlCommand("SELECT MAX(Id) FROM Table");
hi.CommandType = CommandType.Text;
hi.Connection = connection;
hi.Parameters.AddWithValue("@Id", ??);

例如,最后一个ID是14.现在有人正在注册,我希望它在Id下的SQL Server表中说15。

2 个答案:

答案 0 :(得分:2)

我不确定您的全表结构是什么样的,但您所描述的功能本身可以在SQL Server数据库中使用,它被称为标识列。你实现它的方式是这样的:

CREATE TABLE MyTable
(
    Id int not null identity(1,1),
    Name nvarchar(255) not null
    # other columns go here...
)

您应该能够更改现有表以使Id列使用标识,唯一的问题是每个表只能有一个标识列。

如果要在表中插入新记录,可以将标识列保留在insert语句之外,因为SQL Server将使用适当的值填充它:

INSERT INTO MyTable (Name) 
VALUES ('My Name')

答案 1 :(得分:0)

我建议通过使ID列自动增加来在数据库级别处理它。 如果您想从代码中执行此操作,那么在进行插入调用以添加数据之前,必须对数据库进行额外命中以获取最后一个ID。

相关问题