社区
数据库相关
帖子详情
请教:在程序中使用到一个查询的时候突然出现“SQL 605 致命错误”是怎么回事?
lxl
2003-12-03 11:42:41
程序其他部分在涉及到这个几个表的查询和增加记录都很正常,是怎么回事啊?我昨天用的都还很正常的。应该如何排错?
我用的SQLSERVER2000+DELPHI6+WIN2000
...全文
135
17
打赏
收藏
请教:在程序中使用到一个查询的时候突然出现“SQL 605 致命错误”是怎么回事?
程序其他部分在涉及到这个几个表的查询和增加记录都很正常,是怎么回事啊?我昨天用的都还很正常的。应该如何排错? 我用的SQLSERVER2000+DELPHI6+WIN2000
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
upingking
2003-12-03
打赏
举报
回复
楼主要不你装一下mdac2.8
jingbianfc
2003-12-03
打赏
举报
回复
先查错误代码对应的信息,看帮助里如何分析的
另,补丁要打,病毒要杀
lxl
2003-12-03
打赏
举报
回复
up一下
seilfer2000
2003-12-03
打赏
举报
回复
这种突然出现很难捕捉的错误是最烦人的,楼主好运吧
lxl
2003-12-03
打赏
举报
回复
没有用ADO啊,只用了BDE,而且在工作站重新启动后,都还有这样的提示
upingking
2003-12-03
打赏
举报
回复
你用的是ado吗??
我也遇到过类似的问题,用mdac2.8就解决了。还有就是连commandtimeout设置的时间比较长才行。
zsjzwj
2003-12-03
打赏
举报
回复
SQL中毒了(如果没打补丁),猜的,呵呵
zsjzwj
2003-12-03
打赏
举报
回复
一楼,UP
ntsnow
2003-12-03
打赏
举报
回复
应该是你的数据库中的表出了问题,而且可能就是该表中的一两条记录的问题,我以前也遇到过,当时我用的一个比较笨的方法是用ACCESS连接到SQL SERVER,直接在ACCESS中打开表,鼠标向下拖动,到错误的那行记录,就会报错了。
lxl
2003-12-03
打赏
举报
回复
做一个查询的时候,涉及一个表和几个编码表
zzzl
2003-12-03
打赏
举报
回复
具体你是在做什么操作的时候出现的这个错误
lxl
2003-12-03
打赏
举报
回复
这种情况是不是
使用以下命令就可以了?客户不在本地,请有经验的朋友帮忙
DBCC CHECKDB ('数据库名', [REPAIR_REBUILD])
lxl
2003-12-03
打赏
举报
回复
再请教:
运行了CHECKDB后提示
发现了 0 个分配错误和 3 个一致性错误
这种情况如何处理,最好不要丢失数据
lxl
2003-12-03
打赏
举报
回复
多谢楼上,这个帮助已经在SQL SERVER的联机从书上看过,但困惑的是为什么程序中的其他模块访问相同的表时为什么没有报错呐?
Shiyl
2003-12-03
打赏
举报
回复
错误 605
严重级别 21
消息正文
试图从数据库 ''%2!'' 中提取的逻辑页 %1! 属于对象 ''%4!'',而非对象 ''%6!''。
解释
当 Microsoft® SQL Server™ 检测到数据库损坏时发生该错误。在文本而非对象 ''%6!'' 中指定的第二个对象可能损坏。因为该错误可以屏蔽其它错误的存在,所以请执行 DBCC CHECKDB 以确定损坏的程度。如果 DBCC CHECKDB 未报告其它错误,则提到的第一个对象未损坏。
当 SQL Server 遍历某对象的页并在链中找到其对象 ID 与被访问对象的 ID 不匹配的页时检测到数据库损坏。可能存在已损坏的页链、损坏的索引分配映射表 (IAM) 或 sysobjects 系统表中该对象的无效条目。聚集表具有一个表数据的双向链接的页链,每个索引级别也具有一个双向链接的页链。非聚集索引的每个索引级别具有一个页链。堆集中的页未链接。IAM 用于查找堆集的页。
尽管错误 605 通常显示两个对象名,但可以发生其它的变化:
如果错误未显示对象名而显示大于 0 的数字,则表示试图引用该对象的系统表中不存在的对象 ID。
如果错误报告第一个对象 ID 为 0,则可能遇到了一个未分配页。(不存在等于 0 的对象 ID。)
如果错误指出属于对象 ALLOCATION 的页,则数据库使用的某些分配结构可能损坏了。
通常该错误在损坏已写入磁盘上的数据库之后发生,但它还可以在损坏尚未写入磁盘的情况下完全在高速缓存中发生。这称为暂时的 605 错误,且不与数据损坏相关联。如果错误 605 在数据访问期间发生,但后续的 DBCC CHECKDB 语句在没有出错的情况下完成,则 605 错误可能是暂时的。暂时的 605 错误可以由操作系统过早地通知 SQL Server 已完成某个 I/O 操作而引起;尽管不存在实际的数据损坏,但显示错误信息。
非暂时的 605 错误通常由硬件或磁盘设备驱动程序失败而引起。
对策
在错误信息中指定的第二个对象上执行 DBCC CHECKTABLE。若要确定损坏的完全程度,请尽快执行 DBCC CHECKDB。同时检查错误日志以确定是否有其它错误,经常有错误伴随 605 错误。
如果 605 错误不是暂时的,则问题很严重,必须运行带有一个修复子句的 DBCC CHECKDB。如果错误涉及索引页,请使用 REPAIR_REBUILD 子句。如果错误涉及数据页,可能需要使用 REPAIR_ALLOW_DATA_LOSS 子句。在不允许丢失数据的可能事件中,将需要从已知的干净备份进行还原。如果问题仍然存在,请与您的主要支持提供者联系。使 DBCC CHECKDB 的输出可查阅。
重要 如果运行带有一个修复子句的 DBCC CHECKDB 未更正索引问题,或不确定带有修复子句的 DBCC CHECKDB 对数据有何影响,则请与您的主要支持提供者联系。
此外,运行硬件诊断并更正问题。您可能发现在计算机上执行全新的安装(包括重新格式化磁盘驱动器和重新安装操作系统)十分有益。这消除了 .dll 或 .exe 程序损坏的可能性。还可以检查操作系统错误日志以查看错误的发生是否是硬件故障的结果。
最后,确保系统未在磁盘控制器上启用写入缓存。如果怀疑这是问题起因,请与您的硬件供应商联系。
其它信息
DBCC CHECKDB 提供 REPAIR_REBUILD 和 REPAIR_ALLOW_DATA_LOSS 子句。REPAIR_REBUILD 子句重建损坏的索引,而 REPAIR_ALLOW_DATA_LOSS 子句修复分配问题。有时,删除页是修复分配问题的唯一方法。通常,这些页包含已删除的数据,但它们可能包含有效数据。因此,删除页比使用带有修复子句的 DBCC CHECKDB 更危险。当无可用的数据库备份时使用带有修复子句的 DBCC CHECKDB 修复数据库损坏。
如果您的数据库是数据仓库,则可以在重新加载丢失的数据之前在没有所丢失数据的情况下继续操作一段时间。在这些情况下,使用带有 REPAIR_ALLOW_DATA_LOSS 子句的 DBCC CHECKDB 修复已损坏的数据库。
可以通过遵照下列准则来防止问题:
1、只在针对您的操作系统已验证的硬件和控制器中运行 SQL Server。
2、同DBCC CHECKDB 语句一起执行常规备份。DBCC CHECKDB 执行 DBCC NEWALLOC 和 DBCC CHECKALLOC 以前执行的所有检查,但 DBCC CHECKDB 更快。这是确信数据库在备份时的状态的唯一方法。
3、如果数据十分重要,则经常备份事务日志。这可以将脆弱性时段减小到一个小时或更短,即使是在发生灾难性硬件问题的情况下。
4、在大多数重要情况下,使用备用服务器和连续运行的批处理作业从主计算机移走事务备份,并在备用计算机上连续进行还原。
5、如果不停地遇到数据损失问题,尝试将计算机、控制器和磁盘设备驱动程序交换为不同类型的组件。以便更容易地确定问题是否与特定的平台有关。
lxl
2003-12-03
打赏
举报
回复
多谢提醒,目前控制台还正常,而且他们的局域网没有联接INTERNET
delphi_xizhousheng
2003-12-03
打赏
举报
回复
最近流行攻击SQL SERVER的病毒,至少攻击控制台。留意一下最近的帖子
由Delphi
程序
改写
Sql
(2000)的存储过程
各位前辈大家好,请帮我解决
一个
棘手的问题,我不会写
SQL
存储过程,现在
一个
Delphi
程序
执行非常的慢,想将其用
SQL
存储过程替代请各位前辈帮忙,在线等主要 资料表单有 MRPplan,MRPplantou (生产单资料表), ...
《My
SQL
存储过程编程》-读书笔记
本书结构: 第一部分:存储编程基础 第1章:存储过程
程序
基础 第2章:My
SQL
存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储
程序
中
使用
SQL
第一章:My
SQL
存储
程序
介绍 存储
程序
包含存储过程,函数和触发器。正确
使用
存储
程序
也有助于加强数据库的安全性和完整性以及改善你的应用
程序
的性能和易维护性。 1.1 什么是存储
程序
...
Windows10启动pl
sql
时报External exception C0000006
刚装上还好好的,关机后再开就不行了。
请教
百度和老师后,依然没有解决。 在决定放弃的前一刻,我突然想起了惠普客服。 小惠说,这可能是由于软件冲突导致的,建议: 1. 保存个人重要文件; 2. 右击任务栏–>任务管理器–>启动–>将启动项全部禁用–>重启。 我照做之后,开开oracle的相关服务,再次打开pl
sql
,没再
出现
之前的问题! 总结:该问题是杀毒软件360...
sql
server 函數
sql
server 函數silver6 | 09 十二月, 2005 11:07 1.字符串函数 长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(ex...
我了解的软件测试基本概念
题目汇总 共293道题 目录 题目汇总 1 一. 技术类型题目: 4 二. 测试话术: 9 1.什么是兼容性测试?兼容性测试侧重哪些方面? 9 2.正交表测试用例设计方法的特点是什么? 10 3.简述一下缺陷的生命周期? 10 3.画出软件测试的V模型图。 10 4.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作
中
的应用。 10 5.请以您以往的实际工作为例...
数据库相关
2,498
社区成员
88,444
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章