1

我已经链接了一个包含 2 个表 Login 和 Customer 的基本数据库:

  • Login包含 ( CustomerID, loginID, password)
  • Customer包含 ( CustomerID, name, last, dob)

CustomerID是两个字段中的主键,并且是登录表中的自动增量值。

当我想注册一个新用户时,我想首先填充登录表(它具有CustomerID自动增量值)

如何从中获取下一个自动增量值,Login以便在填充Customer表时使用它?

我正在使用 SQL Server 12。

4

5 回答 5

1

如果您使用存储过程来处理此逻辑,那么您可以在一个事务中通过Scope_Identity从新插入的记录中获取值,然后使用该值插入到下一个表中来执行此操作。

Scope_Identity绝对是这里的路,在你调用SP的范围内,你会得到最新的ID。

如果这是通过实体框架进行的两步过程,那么请查看如何使用实体框架检索插入实体的 ID?

于 2013-09-13T08:57:49.847 回答
0
select isnull(MAX(CustomerID),0)+1 from Customer
于 2013-09-13T08:35:49.460 回答
0

您可以Guid在 C# 代码中使用 a 并将其设置为 CustomerID ( Guid custID = new Guid();)。 Guids 是uniqueidentifierSQL Server 中的类型。

你在使用实体框架吗?这是从 .NET 应用程序访问 SQL 数据库的好方法。

于 2013-09-13T08:40:16.607 回答
0

试试这个 SQL 语句:

SHOW TABLE STATUS LIKE 'Login_Table'

Auto_increment的值或其他细节

于 2013-09-13T08:37:02.277 回答
0

如果您使用 sql 查询:

让您的 inertIntoLoginTable 函数返回一个整数,即SCOPE_IDENTITY@@Identity

如果您使用的是像实体框架这样的 ORM,则 id 将在插入数据库后设置为对象:

Login.loginID将是您致电后插入的最后一个 IDdbContext.SaveChanges();

于 2013-09-13T08:47:01.427 回答