2016-04-21 83 views
0

我有超过100列的表是什么varchar(200)。我们正在改变所有列nvarchar但在运行ALTER脚本时,我们得到这样的警告消息:SQL Server:最大行大小警告

警告:表“表格名”被创建,但其最大行 大小超过了允许的最大值8060字节。插入或更新到 如果结果行超出大小限制,该表将失败。

我应该为此感到惊慌,还是我可以忽略它?

+2

我会担心有一张大桌子开始,无论发生什么事情都需要这么做吗?你可以重新访问一些数据类型并减少长度吗? –

+0

可能是将这100列归一化为更易于管理的好时机。 –

+0

忽略它?真?您的插入和/或更新现在可能开始失败,并且您想忽略它? –

回答

1

即使没有移动到nvarchar,问题也是存在的 - 每100列中有200字节是每行20000字节。 SQL Server中的最大行大小为8060,如警告文本中所示。这只是一个警告,因为列是var char这意味着它们占用的空间太多,因为它们实际上需要存储从零开始的当前数据。但是,如果所有列的总长度超过了任何行的最大限制 - 它将失败 - 服务器将无法存储该行。这就是这个警告的意义所在。

+0

所有字段将永远不会填充插入该表中的任何行(最多可能为30个)。但我明白你的意思。应该删除不需要的... – hs2d