无法在SQL Server中删除/重命名损坏的表

问题描述 投票:1回答:3

在我的SQL中,表已损坏。重命名或删除它时,我收到以下消息:

可能的架构损坏。运行DBCC CHECKCATALOG。当前命令发生严重错误。结果(如果有的话)应该被丢弃。

我确实尝试了DELETETRUNCATEDROP,但这些都没有。

每个备份文件中都存在此损坏的表。此表中的数据并不重要,但重点是重新创建它。如何删除此损坏/损坏的表?

sql-server datatable corruption
3个回答
1
投票

请尝试以下操作以从表中删除损坏:

  • 要获得有关表损坏的确切详细信息,请执行以下命令:
Use YourDatabaseName
DBCC CHECKTABLE ('YourTableName')
Go
  • 既然您已经了解了有关损坏的详细信息,那么为了从表中删除损坏,您需要按如下方式DROP并重新创建该表的PRIMARY KEY: Use YourDatabaseName Go ALTER TABLE [YourTableName] DROP CONSTRAINT [Primary Key Constraint Name] GO ALTER TABLE [YourTableName] ADD CONSTRAINT [Primary Key Constraint Name] Primary Key Clustered (Column(s)) GO
  • 现在,您可以再次运行DBCC CHECKTABLE命令以确认已删除表损坏。

它确实对我有用。

祝一切顺利...!!!


0
投票

http://www.sqlskills.com/blogs/paul/checkdb-from-every-angle-emergency-mode-repair-the-very-very-last-resort/

破解系统表以使数据库进入EMERGENCY模式。使用未记录和不受支持的DBCC REBUILD_LOG命令构建新的事务日志。使用REPAIR_ALLOW_DATA_LOSS选项运行DBCC CHECKDB以修复数据文件中的损坏 - 包括可能导致问题的损坏,以及重建事务日志导致的损坏(例如,因为更改数据库结构的活动事务丢失)。确定哪些数据丢失或在事务上不一致(例如,因为更改多个表的事务丢失),就业务逻辑而言,将数据库从紧急模式中取出然后所有其他的东西,如根本原因分析和获取更好的备份策略


0
投票

如果不检查错误消息,则无法向您建议解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.