Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 巨大的联接查询导致最大行大小错误_Sql_Sql Server 2008 - Fatal编程技术网

Sql 巨大的联接查询导致最大行大小错误

Sql 巨大的联接查询导致最大行大小错误,sql,sql-server-2008,Sql,Sql Server 2008,我正在执行一个将100多个表连接在一起的SQL查询,遇到以下错误消息: 无法创建大于允许值的大小为8131的行 最大行大小为8060 我只是想知道我现在的选择是什么?这个查询不可能执行吗?有什么解决办法吗 谢谢你的帮助 谢谢您的问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制 确保SELECT中没有使用任何“*”,然后尽可能删除所有未使用的字段和修剪/限制字符串。问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制

我正在执行一个将100多个表连接在一起的SQL查询,遇到以下错误消息:

无法创建大于允许值的大小为8131的行 最大行大小为8060

我只是想知道我现在的选择是什么?这个查询不可能执行吗?有什么解决办法吗

谢谢你的帮助


谢谢

您的问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制


确保SELECT中没有使用任何“*”,然后尽可能删除所有未使用的字段和修剪/限制字符串。

问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制


确保SELECT中没有使用任何“*”,然后尽可能删除所有未使用的字段和修剪/限制字符串。

问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制


确保SELECT中没有使用任何“*”,然后尽可能删除所有未使用的字段和修剪/限制字符串。

问题不在于联接或表的数量。它是选择中字段的数量和大小。您正在达到行大小限制,而不是行数限制

确保在选择中没有使用任何“*”,然后尽可能删除所有未使用的字段和修剪/限制字符串。

来自:

您达到了SQL的行大小限制,即8060字节(例如8K页面)。使用普通数据类型,您不能有一个使用超过8060字节的行,虽然您可以使用
varchar
来允许较小的数据位偏移较大的数据位,但468列数据的平均列宽为17.2字节

如果将
varchar(x)
转换为
varchar(max)
问题将得到解决

另请参阅:

来源:

您达到了SQL的行大小限制,即8060字节(例如8K页面)。使用普通数据类型,您不能有一个使用超过8060字节的行,虽然您可以使用
varchar
来允许较小的数据位偏移较大的数据位,但468列数据的平均列宽为17.2字节

如果将
varchar(x)
转换为
varchar(max)
问题将得到解决

另请参阅:

来源:

您达到了SQL的行大小限制,即8060字节(例如8K页面)。使用普通数据类型,您不能有一个使用超过8060字节的行,虽然您可以使用
varchar
来允许较小的数据位偏移较大的数据位,但468列数据的平均列宽为17.2字节

如果将
varchar(x)
转换为
varchar(max)
问题将得到解决

另请参阅:

来源:

您达到了SQL的行大小限制,即8060字节(例如8K页面)。使用普通数据类型,您不能有一个使用超过8060字节的行,虽然您可以使用
varchar
来允许较小的数据位偏移较大的数据位,但468列数据的平均列宽为17.2字节

如果将
varchar(x)
转换为
varchar(max)
问题将得到解决



另请参阅:

varchar(max)是一个很好的解决方案,但也会带来一些优化方面的麻烦。如果可能的话,我建议op找到另一种解决方法。在很多情况下,varchar的定义是任意大的,超出了需要的范围。我从来没有因为这个varchar(max)而在优化方面遇到过问题,但也许你是对的。我必须调查一下。Thanksvarchar(max)是一个很好的解决方案,但也会带来一些优化问题。如果可能的话,我建议op找到另一种解决方法。在很多情况下,varchar的定义是任意大的,超出了需要的范围。我从来没有因为这个varchar(max)而在优化方面遇到过问题,但也许你是对的。我必须调查一下。Thanksvarchar(max)是一个很好的解决方案,但也会带来一些优化问题。如果可能的话,我建议op找到另一种解决方法。在很多情况下,varchar的定义是任意大的,超出了需要的范围。我从来没有因为这个varchar(max)而在优化方面遇到过问题,但也许你是对的。我必须调查一下。Thanksvarchar(max)是一个很好的解决方案,但也会带来一些优化问题。如果可能的话,我建议op找到另一种解决方法。在很多情况下,varchar的定义是任意大的,超出了需要的范围。我从来没有因为这个varchar(max)而在优化方面遇到过问题,但也许你是对的。我必须调查一下。感谢您只是一个旁注,如果您需要连接100多个表,那么您可能会遇到比运行此查询更重要的设计问题。您的select子句是什么?@JNK不确定应该将其降级为“旁注”。对于表(我正在从电子表格导入数据)没有一个选项作为旁注,如果您需要连接100多个表,那么您可能会遇到比运行此查询更重要的设计问题。您的select子句是什么?@JNK不确定是否应将其降级为“侧注”。对于表(我正在从电子表格导入数据)没有一个选项作为侧注,如果您需要连接100多个表,您可能会遇到比运行此查询更重要的设计问题。您的select子句是什么?@JNK不确定是否应将其降级为“旁注”。对于表(我正在从电子表格导入数据)没有选项,就像s一样