表中的最后一个id值.SQL Server

cMi*_*nor 2 sql sql-server-2008

有没有办法知道表的最后一个nthid字段,而不完全扫描它?(只是到表的末尾获取id值)

table
id   fieldvalue
1    2323
2    4645
3    556
...  ...
100000000  1232
Run Code Online (Sandbox Code Playgroud)

所以例如这里有n = 1000000001亿

--------------编辑----- 那么提出的哪一个查询会更有效率?

小智 18

SELECT MAX(id) FROM <tablename>
Run Code Online (Sandbox Code Playgroud)


rsb*_*rro 5

假设ID是表的IDENTITY,则可以使用SELECT IDENT_CURRENT('TABLE NAME')

有关更多信息,请参见此处

关于此方法的一件事要注意:如果您的INSERT失败,但是增加了IDENTITY计数器,那么您将得到的返回值将高于由INSERT返回的结果。SELECT MAX(id) FROM <tablename>

  • 关于这种方法要注意的一件事,如果您的INSERT失败,但是增加了IDENTITY计数器,那么您将获得比SELECT MAX(id)FROM &lt;tablename&gt;返回的结果更高的结果。 (2认同)