我收到此错误:无法创建一个大小为8785的行,其大于允许的最大值8060

时间:2013-07-11 16:10:58

标签: sql-server

在大多数情况下,这是由于某些特定记录的整体行大小可能会引发此类错误。但我的情况有所不同。我在一台服务器上运行一个报告,它工作正常。但是相同的报告和相同的数据库会抛出行大小错误:无法创建大小为8785的行,该行大于允许的最大值8060. 关于如何解决这个问题的任何建议?

2 个答案:

答案 0 :(得分:3)

来自http://blogs.msdn.com/b/msdnts/archive/2006/12/01/row-size-limitation-in-sql-2000-and-2005.aspx

  

创建表时,可能会遇到以下情况   信息:'表已创建,但最大行   size(11038)超过每行的最大字节数(8060)。插入   或UPDATE如果生成的行长度,此表中的行将失败   超过8060字节。

第二次报告中的某些内容达到了这个最大值;可能是您没有发现的边缘情况,其中 数据存在差异。

我建议您查看为数据库字段分配的内容 - 例如,varchar(8000)实际上是否可以切换到varchar(max) - 或者考虑在多个表中重构数据。

答案 1 :(得分:0)

I was running into the same error using a query that just did a select statement. I converted a massive view I was using into a CTE and was still getting the error. I then removed unused columns from the CTE and the error went away. Not really sure what was going on since I thought the query optimized was supposed to ignore unused select columns.