Sql server 如何获取SQL表的下一个自动增量值并使用它?
我已经链接了一个基本数据库,其中包含两个表:Login和Customer:Sql server 如何获取SQL表的下一个自动增量值并使用它?,sql-server,asp.net-mvc,Sql Server,Asp.net Mvc,我已经链接了一个基本数据库,其中包含两个表:Login和Customer: Login包含(CustomerID,loginID,密码) 客户包含(客户ID,名称,上次,dob) CustomerID是这两个字段中的主键,是登录表中的自动增量值 当我想注册一个新用户时,我想首先填充登录表(它有CustomerID作为一个自动增量值) 如何从Login获取下一个自动增量值,以便在填充Customer表时使用它 我正在使用SQL Server 12。请尝试以下SQL语句: select isnu
包含(Login
,CustomerID
,loginID
)密码
包含(客户
,客户ID
,名称
,上次
)dob
CustomerID
是这两个字段中的主键,是登录表中的自动增量值
当我想注册一个新用户时,我想首先填充登录表(它有CustomerID
作为一个自动增量值)
如何从Login
获取下一个自动增量值,以便在填充Customer
表时使用它
我正在使用SQL Server 12。请尝试以下SQL语句:
select isnull(MAX(CustomerID),0)+1 from Customer
SHOW TABLE STATUS LIKE 'Login_Table'
查找自动增量的值或其他详细信息尝试以下SQL语句:
SHOW TABLE STATUS LIKE 'Login_Table'
查找自动增量的值或其他详细信息您可以在C代码中使用
Guid
,并将其设置为CustomerID(Guid custID=new Guid();
)。
Guid
s是SQL Server中的类型uniqueidentifier
您正在使用实体框架吗?这是一种从.NET应用程序访问SQL数据库的好方法。您可以在C代码中使用
Guid
,并将其设置为CustomerID(Guid custID=new Guid();
)。
Guid
s是SQL Server中的类型uniqueidentifier
您正在使用实体框架吗?这是一种从.NET应用程序访问SQL数据库的好方法。如果您使用的是SQL查询: 让您的InertingAtologintable函数返回一个整数,该整数是 或 如果您使用的是类似ORM的实体框架,则id将在插入数据库后设置为对象:
Login.loginID
将是调用dbContext.SaveChanges()后插入的最后一个id代码>如果您使用的是sql查询:
让您的InertingAtologintable函数返回一个整数,该整数是
或
如果您使用的是类似ORM的实体框架,则id将在插入数据库后设置为对象:
Login.loginID
将是调用dbContext.SaveChanges()后插入的最后一个id
如果您使用存储过程来处理此逻辑,那么您可以在一个事务中执行此操作,方法是从新插入的记录中获取Scope\u Identity
值,然后使用此值插入到下一个表中
Scope\u Identity
无疑是解决此问题的方法,您将在呼叫SP的范围内获得最新的ID
如果这是一个通过实体框架的两步过程,那么请看一看如果您使用存储过程来处理此逻辑,那么您可以在一个事务中执行此操作,方法是从新插入的记录中获取Scope_Identity
值,然后使用此值插入到下一个表中
Scope\u Identity
无疑是解决此问题的方法,您将在呼叫SP的范围内获得最新的ID
如果这是一个通过实体框架的两步过程,那么请看一看我在理解您的表模式时遇到了困难。你能说清楚一点吗?你是在问如何从新创建的Login
记录中获取自动增量生成的id值,以便在其他表中使用它们吗?你用什么来访问表和数据库?实体框架?我无法理解您的表架构。你能说清楚一点吗?你是在问如何从新创建的Login
记录中获取自动增量生成的id值,以便在其他表中使用它们吗?你用什么来访问表和数据库?实体框架?你能给我看一下整个声明吗?那是sql语句吗?@kayze是的,这是sql语句。你能给我看一下整个语句吗?这是sql语句吗?@kayze是的,这是sql语句。对不起,我不能使用guid。数据库结构对登录表使用自动增量,我不能修改它。对不起,我不能使用guid。数据库结构对登录表使用自动增量,我不能修改它