在SQL Server或其他数据库中,如果列是自动增量int类型,即使记录已被删除,表也能记住最高值.假设您有一个表,其中包含一些先前已删除的记录,然后您使用SELECT MAX([ColumnName]),它可能返回与已删除记录关联的值.有没有人见过这样的场景?
在Sql Server中不会发生这种情况SELECT MAX(从下面的脚本中可以看出).
CREATE TABLE TEST_TABLE (
ID INT IDENTITY (1,1),
Val INT
)
INSERT INTO TEST_TABLE (Val) SELECT 1
INSERT INTO TEST_TABLE (Val) SELECT 2
INSERT INTO TEST_TABLE (Val) SELECT 3
INSERT INTO TEST_TABLE (Val) SELECT 4
INSERT INTO TEST_TABLE (Val) SELECT 5
DELETE FROM TEST_TABLE WHERE Val >= 3
SELECT MAX(ID) MaxID
FROM TEST_TABLE
DROP TABLE TEST_TABLE
Run Code Online (Sandbox Code Playgroud)
产量
MaxID
2
Run Code Online (Sandbox Code Playgroud)
如果您正在查找表标识值,请参阅@AdaTheDev答案.
| 归档时间: |
|
| 查看次数: |
576 次 |
| 最近记录: |