ROW中VARCHAR(MAX)的大小

时间:2016-07-25 23:40:35

标签: sql-server-2008

我目前正在开发一个项目,允许我们的客户将我们托管环境中的数据同步到客户端的本地数据库。问题是客户端可以从数千列中进行选择,并按照他们想要的方式创建表。除此之外,VARCHAR列的大小尚不清楚。为了解决这个问题,我对所有文本列都使用了VARCHAR(MAX)

要确定哪些列转到哪些表,客户端将使用工具(我们提供)将我们的字段映射到他们选择的表/列。我们将字段数限制为每个表500个。

我的问题是,在为内部测试创建设置时,我收到来自SQL Server的警告:

  

行的最大长度超过允许的8060字节限制。对于某些大值组合,插入/更新操作将失败。

在一个用于测试的示例表中,有247个(500个)列,类型为NUMERIC(23, 10),235个(500个),类型为VARCHAR(MAX),18个(500个),一种DATETIME

NUMERICDATETIME列可以使用总共3355个字节(每NUMERIC 13个字节,每个DATETIME 8个字节)。这只剩下VARCHAR(MAX)列。

从我能够找到的所有内容中可以看出,VARCHAR(MAX)列中的数据最多可达2GB,并且无法存储在行中的任何内容都会移动到另一个页面。

这是我一直关注的Microsoft页面。

https://technet.microsoft.com/en-us/library/ms186981(v=sql.105).aspx

0 个答案:

没有答案