SQL Server文本,NTEXT,图像数据类型问题
-
09-10-2019 - |
题
微软宣布:“ntext
, text
, , 和 image
数据类型将在Microsoft SQL Server的未来版本中删除。”并建议使用 nvarchar(max)
, varchar(max)
, , 和 varbinary(max)
反而。
我的问题:我的数据类型大于8 kb。如何将这些数据插入SQL?哪种数据类型可以解决我的问题?
解决方案
任何 nvarchar(最大), varchar(最大), , 和 varbinary(最大).
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)
.
不要被“ varchar”位混淆。
这基本上意味着您可以使用大多数功能 varchar(max)
就像您在Varchar(50)上一样or
Varchar(1000)or
Varchar(8000)`。
- (最大)数据类型支持2^32-1字节
- 非最大值类型最多支持8000个字节
所以你可以 varchar(50)
或者 varchar(1000)
取决于 varchar(8000)
但是对于存储更长的字符串,您会使用 varchar(max)
.
“最大”或“ 50”/“ 1000”/“ 8000”位简单地确定内部存储 +最大字符串长度。
当然,有一些小差异,例如索引。
你会使用 nvarchar(max)
, varchar(max)
或者 varbinary(max)
如果您插入大于8KB行限制的数据,则数据将在Row_overflow_data分配单元中的另一页外移动到另一页。
以下 MSDN文章 进一步详细说明此过程。
我相信Varchar(Max)的最大值是2GB。