SQL Server 2008 无法修复一致性

Enr*_*ico 7 sql-server-2008 sql-server

我的 SQL Server 2008 数据库有问题。

发射

DBCC CHECKDB
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

SQL Server 检测到基于逻辑一致性的 I/O 错误:校验和不正确(预期:0xd2e00940;实际:0x925ef494)。它发生在读取文件“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\file.mdf”中偏移量 0x000000076de000 处的数据库 ID 22 中的页面 (1:15215) 期间。SQL Server 错误日志或系统事件日志中的其他消息可能会提供更多详细信息。这是威胁数据库完整性的严重错误情况,必须立即纠正。完成完整的数据库一致性检查 (DBCC CHECKDB)。此错误可能由多种因素引起;有关详细信息,请参阅 SQL Server 联机丛书。

我发现导致问题的表:

DBCC CHECKTABLE
Run Code Online (Sandbox Code Playgroud)

消息 824,级别 24,状态 2,第 8 行
SQL Server 检测到基于逻辑一致性的 I/O 错误:校验和不正确(预期:0xd2e00940;实际:0x925ef494)。它发生在读取文件“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\file.mdf”中偏移量 0x000000076de000 处的数据库 ID 22 中的页面 (1:15215) 期间。SQL Server 错误日志或系统事件日志中的其他消息可能会提供更多详细信息。这是威胁数据库完整性的严重错误情况,必须立即纠正。

完成完整的数据库一致性检查 (DBCC CHECKDB)。此错误可能由多种因素引起;有关详细信息,请参阅 SQL Server 联机丛书。

所以我尝试了修复操作:

DBCC CHECKTABLE (table_name, REPAIR_ALLOW_DATA_LOSS)
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误:

消息 824,级别 24,状态 2,第 8 行
SQL Server 检测到基于逻辑一致性的 I/O 错误:校验和不正确(预期:0xd2e00940;实际:0x925ef494)。它发生在读取文件“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\file.mdf”中偏移量 0x000000076de000 处的数据库 ID 22 中的页面 (1:15215) 期间。SQL Server 错误日志或系统事件日志中的其他消息可能会提供更多详细信息。这是威胁数据库完整性的严重错误情况,必须立即纠正。

完成完整的数据库一致性检查 (DBCC CHECKDB)。此错误可能由多种因素引起;有关详细信息,请参阅 SQL Server 联机丛书。

我也试过在 SINGLE_USER 模式下设置数据库,但没有结果。

我无法删除或截断表。因为我总是得到同样的错误。

该表没有任何约束。它有一个 PK 和一个索引,但我不能丢弃其中任何一个。

Enr*_*ico 0

我没有找到快速的解决方案,所以我从备份中恢复。我创建了一个恢复旧备份的数据库。然后我更新了新数据库中的数据,从损坏的数据库中导入它们,绕过损坏的表。最后我用新的数据库替换了损坏的数据库。感谢您的帮助。