SQL错误:内部错误。提供的缓冲区读取列值太小。运行DBCC CHECKDB以检查是否存在任何损坏。 [英] SQL ERROR: Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption.

查看:331
本文介绍了SQL错误:内部错误。提供的缓冲区读取列值太小。运行DBCC CHECKDB以检查是否存在任何损坏。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





当我选择一张桌子时出现错误。



内部错误。提供的缓冲区读取列值太小。运行DBCC CHECKDB以检查是否有任何损坏。



2天我的数据库进入可疑模式并且我解决了它。



当我通过以下语法执行DBBCC Checkdb时



Hi,

I am getting an error when i select a table.

Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption.

2 Days back my database has gone into suspect mode and i solved it.

When I did DBBCC Checkdb by below syntax

ALTER DATABASE POSS SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
DBCC CHECKDB ('POSS');
ALTER DATABASE POSS SET MULTI_USER;





我收到以下错误





I am getting following errors

Msg 8992, Level 16, State 1, Line 3
Check Catalog Msg 3858, State 1: The attribute (max_length=0) of row (object_id=119007505,column_id=8) in sys.columns has an invalid value.

Msg 226, Level 16, State 6, Line 4
ALTER DATABASE statement not allowed within multi-statement transaction





谢谢



Sanju



Thanks

Sanju

推荐答案

您的数据库已损坏。从上次已知的良好备份中恢复它。



如果你没有备份(为什么不呢?!),那么你可能会能够使用其中一个修复选项:

http:// www。 sql-server-pro.com/dbcc-checkdb.html [ ^ ]

http:// msdn .microsoft.com / zh-CN / library / ms176064.aspx [ ^ ]



DBCC CHECKDB 命令的输出将告诉你需要的最低修理水平。如果幸运的话,它将是 REPAIR_REBUILD ,它将尝试修复损坏而不删除任何数据。否则,您将被卡在 REPAIR_ALLOW_DATA_LOSS 中,这将删除数据并破坏参照完整性以尝试修复损坏。



确保在任何修复操作后运行 DBCC CHECKCONSTRAINTS



数据库返回后一个可用的状态,设置一个工作来定期备份你的数据库。确保定期测试备份,以确保在必要时可以恢复它们。
Your database is corrupt. Restore it from the last known good backup.

If you don't have a backup (why not?!), then you might be able to use one of the repair options:
http://www.sql-server-pro.com/dbcc-checkdb.html[^]
http://msdn.microsoft.com/en-us/library/ms176064.aspx[^]

The output from the DBCC CHECKDB command will tell you the minimum repair level required. If you're lucky, it will be REPAIR_REBUILD, which will attempt to fix the corruption without deleting any data. Otherwise, you'll be stuck with REPAIR_ALLOW_DATA_LOSS, which will delete data and break referential integrity to try to fix the corruption.

Make sure you run DBCC CHECKCONSTRAINTS after any repair operation.

Once your database is back to a usable state, set up a job to back your database up on a regular basis. Make sure you regularly test the backups to ensure that you can restore them if necessary.


这篇关于SQL错误:内部错误。提供的缓冲区读取列值太小。运行DBCC CHECKDB以检查是否存在任何损坏。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆