是否可以在SQL Server 2005数据库中的特定表上运行:DBCC CHECKDB
?
我有以下语法:
DBCC CHECKDB
[
[ ( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
) ]
[ WITH
{
[ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
}
]
]
但是不断收到错误的语法。我只是想运行它来查看它引发的错误?你能帮我写一下这个语法吗?我想删除所有修复选项。
答案 0 :(得分:11)
答案 1 :(得分:0)
迟到了聚会,但是,哦,好了...请参阅MS DBCC CHECKTABLE
语法:
DBCC CHECKTABLE ( table_name | view_name
[ , { NOINDEX | index_id }
|, { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ] )
[ WITH
{ [ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
[ , MAXDOP = number_of_processors ]
}
]
请小心使用任何REPAIR选项。请注意,ESTIMATEONLY参数只是影响零,而PHYSICAL_ONLY选项在大型表上的运行时间可能要短得多。
答案 2 :(得分:0)
正如我所说的here
有时,在连接到 SQL Server 时,您可能会发现 SQL 数据库 (db) 被标记为“SUSPECT”。
这可能是由于数据库的事务日志文件丢失或损坏、硬件故障、病毒攻击、SQL Server 突然关闭等多种原因造成的。查看 SQL Server 错误日志以了解 SQL Server 数据库背后的具体原因怀疑模式。
当 SQL 数据库进入可疑模式时,您无法访问该数据库,也无法执行任何事务,直到它重新联机。要解决此问题,请执行以下步骤:
1:将数据库状态更改为紧急模式。
ALTER DATABASE dbName SET EMERGENCY
2:接下来,执行数据库控制台命令 (DBCC) CHECKDB。如果它发现数据库有任何问题,它会推荐适当的修复选项,例如 REPAIR_REBUILD
、REPAIR_FAST
或 REPAIR_ALLOW_DATA_LOSS
。
DBCC CHECKDB ('dbName')
3:现在运行以下 T-SQL 查询以回滚任何事务并将 SQL 数据库置于单用户模式。
ALTER DATABASE dbName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
4:使用修复选项重新运行 DBCC CHECKDB 以修复可疑数据库。为此,请使用以下 T-SQL 查询:
DBCC CHECKDB (dbName, REPAIR_ALLOW_DATA_LOSS)
5:如果发现脚本运行成功,将数据库从单用户模式恢复到多用户模式。运行以下命令来完成:
ALTER DATABASE dbName SET MULTI_USER
您可以找到更详细的信息here