微软宣布:“ntext
,text
和image
数据类型将在未来版本的Microsoft SQL Server中删除。”并建议改为使用nvarchar(max)
,varchar(max)
和varbinary(max)
。
我的问题:我的数据类型大于8 kb。如何将此数据插入sql?哪种数据类型可以解决我的问题?
答案 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)`上一样。
所以你可以varchar(50)
或varchar(1000)
到varchar(8000)
,但是为了存储更长的字符串你会使用varchar(max)
。
“max”或“50”/“1000”/“8000”位只是确定内部存储+最大字符串长度。
当然,还有一些细微差别,例如索引。