【发布时间】:2010-10-13 21:33:51
【问题描述】:
如何从我的表中获取下一个可用的主键? 主键是数字。我正在使用 C#。
【问题讨论】:
-
这是插入记录后吗?
-
@OMG Ponies,不,我想插入一条记录,它说需要一个主键
标签: .net sql sql-server-ce
如何从我的表中获取下一个可用的主键? 主键是数字。我正在使用 C#。
【问题讨论】:
标签: .net sql sql-server-ce
*我的答案是基于 MS SQL 知识,而不是 CE
好吧,错误的方法是取键列的最大值并将其加 1...然后祈祷它不会被其他进程或程序占用,这些进程或程序也与您同时插入记录: D
我假设您正在尝试为插入创建下一个键?如果是这样,您应该使用一个“身份”字段,它会在没有您干预的情况下自行更新。否则:
SCOPE_IDENTITY() 可用吗?在您之前的插入之后立即使用它(必须是相同的范围)以获取插入的 id。那只是为了找出输入的id,你真的不应该在自己里面输入id。
IDENT_CURRENT(‘tablename’) 将为您提供最后使用的 id,无论范围如何(您当前的一批 SQL 命令)。
@@IDENTITY 将为您提供为您当前的数据库连接插入的最后一个 id...请谨慎使用。
【讨论】: