Sql 选择MAX(),COUNT()返回错误的值

Sql 选择MAX(),COUNT()返回错误的值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我这里有个奇怪的问题。突然,我的一个表停止为非常简单的查询提供正确的结果。 我的应用程序执行以下操作: nextNumber = SELECT(max) numero from table + 1; 当numero达到12000时,它只是开始返回11995作为从表中选择MAX(numero)的anwser。numero是一个整数列,没有检查、索引、nothing,是一个标准的int列 请注意,该应用程序继续工作,并添加了36行新行,所有行的numero=11996(从selectmax(nu

我这里有个奇怪的问题。突然,我的一个表停止为非常简单的查询提供正确的结果。 我的应用程序执行以下操作:

nextNumber = SELECT(max) numero from table + 1;
当numero达到12000时,它只是开始返回11995作为从表中选择MAX(numero)的anwser。numero是一个整数列,没有检查、索引、nothing,是一个标准的int列

请注意,该应用程序继续工作,并添加了36行新行,所有行的numero=11996(从selectmax(numero)+1返回11995)


我做了很多研究,尝试删除数据库日志、事务日志、收缩数据库,但到目前为止没有任何效果。是什么导致了这样的情况?

经过大量测试后,我发现问题在于数据库数据文件已损坏,只有使用REPAIR_ALLOW_data_LOSS参数运行DBCC CHECKDB,我才能将有问题的表恢复为“正常”。

试试这个
选择Max(Cast(Numero as bigint))作为[Top Numero]从baixatitulos
告诉我,如果没有锁,是否有任何不同。这个难题看起来很有趣。如果删除NOLOCK,这些查询的结果是什么?如果您依赖脏读来获取下一个数字,那么脏读可能是一件肮脏的事情。您的应用程序能够使用吗?未提交的事务可能会导致奇怪的事情发生。
DBCC OPENTRAN
是否显示任何内容?