4

微软宣布:“ ntext, text, 和image数据类型将在 Microsoft SQL Server 的未来版本中被删除。” 并建议使用nvarchar(max), varchar(max), andvarbinary(max)代替。

我的问题:我的数据类型大于 8 kb。如何将这些数据插入到 sql 中?哪种数据类型可以解决我的问题?

有关数据类型的 MSDN 文档

4

4 回答 4

3

nvarchar(max)varchar(max)varbinary(max)中的任何一个。

nvarchar(max) 和 varchar(max) 用于文本信息(nvarchar 支持 unicode)。

varbinary(max) 用于二进制数据(图像、文件等)。

在所有情况下,都有记录表明使用MAX indicates that the maximum storage size is 2^31-1 bytes.

于 2010-12-06T09:45:41.050 回答
2

如果是文本数据,则为varchar(max)or nvarchar(max)(支持 unicode)。varchar(max) 的最大存储大小为 2^31-1 字节(参考

如果是二进制数据,则使用varbinary(max).

于 2010-12-06T09:45:43.683 回答
0

您将使用nvarchar(max),varchar(max)varbinary(max)

如果插入大于 8KB 行限制的数据,则数据将移出行到 ROW_OVERFLOW_DATA 分配单元中的另一个页面。

以下MSDN 文章更详细地解释了此过程。

我相信 varchar(max) 的最大值是 2GB。

于 2010-12-06T09:53:59.630 回答
0

不要被“varchar”位混淆。

这基本上意味着您可以varchar(max)像在 varchar(50) orvarchar(1000) orvarchar(8000) 上一样使用大多数函数。

  • (max) 数据类型支持 2^32-1 字节
  • 非最大类型最多支持 8000 字节

因此,您可以拥有varchar(50)varchar(1000)最多varchar(8000)但要存储更长的字符串,您将使用varchar(max).

“max”或“50”/“1000”/“8000”位只是确定内部存储+最大字符串长度。

当然,还有一些细微的差异,例如索引。

于 2010-12-06T10:03:32.927 回答