繁体   English   中英

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

[英]SQL Server text, ntext, image data type problem

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

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

关于数据类型的MSDN文档

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.

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

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

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

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

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

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

不要被“varchar”位混淆。

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

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

所以你可以让varchar(50)varchar(1000)达到varchar(8000)但是为了存储更长的字符串你需要使用varchar(max)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM