在 TDS 流中的协仪错误

作者:leen 来源:ITPOW(原创) 日期:2007-4-11

在查询分析器中,查询记录时遇到“怪”现象,如果 SQL 语句中含有 order by,则只显示部分记录,否则显示符合 SQL 语句的记录数。

单击“消息”窗格,发现如下信息:

[Microsoft][ODBC SQL Server Driver]在 TDS 流中的协仪错误
[Microsoft][ODBC SQL Server Driver]函数序列错误

怀疑表损坏了,执行如下修复:

exec sp_dboption '数据库名称', 'single user', true
DBCC CHECKTABLE('表名称', REPAIR_ALLOW_DATA_LOSS)
exec sp_dboption '数据库名称', 'single user', false

CHECKTABLE 用于修复表,只能在单用户模式下运行,所以先要设置为单用户模式。

重要说明:REPAIR_ALLOW_DATA_LOSS 是指在修复过程中,允许数据丢失,如果您的数据库不允许数据丢失,请不要使用该选项,或者在事务中完成,以便数据丢失时可以回滚操作。

与 REPAIR_ALLOW_DATA_LOSS 对应的值有:

REPAIR_FAST 进行小的、不耗时的修复操作,不会有丢失数据的危险。数据量大时,可以先尝试该选项。

REPAIR_REBUILD 执行所有修复,可能需要较长的时间,不会有数据丢失的危险。

相关文章