SQL Server文本,ntext,图像数据类型问题

时间:2010-12-06 09:43:25

标签: sql-server sql-server-2008-r2 sqldatatypes

微软宣布:“ntexttextimage数据类型将在未来版本的Microsoft SQL Server中删除。”并建议改为使用nvarchar(max)varchar(max)varbinary(max)

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

MSDN document about data types

4 个答案:

答案 0 :(得分:2)

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.

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

您可以使用nvarchar(max)varchar(max)varbinary(max)

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

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

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

答案 3 :(得分:0)

不要被“varchar”位混淆。

它基本上意味着你可以在varchar(max)上使用大多数函数,就像你在varchar(50)or varchar(1000)or varchar(8000)`上一样。

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

所以你可以varchar(50)varchar(1000)varchar(8000),但是为了存储更长的字符串你会使用varchar(max)

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

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