sql - SELECT MAX(), COUNT() 返回错误值
问题描述
我这里有一个奇怪的问题。突然,我的一张表停止为非常简单的查询提供正确的结果。我的应用程序执行以下操作:
nextNumber = SELECT(max) numero from table + 1;
当 numero 达到 12,000 时,它只是开始返回 11995 作为从表中选择 MAX(numero) 的答案。numero 是一个 INTEGER 列,没有检查、索引,什么都没有,是一个标准的 int 列。
请注意,该应用程序继续工作,并添加了 36 行新行,所有这些行的 numero = 11996(11995 从 SELECT MAX(numero) + 1 返回)
我做了很多研究,尝试删除数据库日志、事务日志、收缩数据库,但到目前为止没有任何效果。什么可能导致这样的事情?
解决方案
经过大量测试后,我发现问题是数据库数据文件损坏,只有运行带有 REPAIR_ALLOW_DATA_LOSS 参数的 DBCC CHECKDB 才能将有问题的表恢复为“正常”。
推荐阅读
- html - 背景图像和相邻 DIV React 之间的 Chrome 移动间隙
- arduino - 不断更改 Arduino I2C 总线地址
- dependency-injection - 定义“参数”不支持配置键
- android - 如何在底部工作表内滚动 Recylerview,同时保持底部工作表处于所需状态?
- java - 如何让不和谐的机器人踢出 Java 中的成员?
- oracle - Ubuntu 18.04 上的 Oracle 12.1.0 - 调用 makefile 的目标“链接 proc gen_pcscfg procob”时出错“”
/precomp/lib/ins_precomp.mk'' - rest - Magento 1 REST API 检索产品 - 响应中的属性
- regex - 匹配范围不重复
- excel - 根据单元格值excel创建启用和禁用的打印按钮
- java - Difference between isTouched and justTouched