sql-server-2005 – 无法重建索引,因为行超过最大大小(Microsoft SQL)

我正在尝试在SQL Server 2005表上重建聚簇索引,并且我一直收到错误:

Cannot create a row of size 8078 which is greater than the allowable maximum of 8060.

该命令只是一个标准的ALTER INDEX< name> ON< table>重建.

我不知道我是如何设法将8078字节组合成一行 – 从我对SQL的理解,这是不可能的.

如果我进行查询以检查行中有多少数据(即Datalength(col1)datalength(col2)…),那么表中最大的行似乎是6389字节,相对于8060而言是好的限制.

我已经尝试将表(使用导入导出向导)复制到另一个数据库或另一个服务器,我得到关于8078字节行的相同错误.

解决方法


this post help?

建议是创建一个新的TEXT列(不受行长度限制),将可变长度列复制到其中,删除旧列并运行DBCC CLEANTABLE.对所有可变长度列执行此操作然后将其更改回如何他们是.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。