SQL 服务器中具有 n 个字符的文本的数据类型和大小是什么?
Which datatype and size for text with n characters in SQL Server?
我无法理解如何为我的文本定义一个大小适合我的最大值的列。字符数。在 Oracle 中,我可以创建一个足以容纳 10 个字符的 VARCHAR2(10 CHAR)
。大小取决于数据库中使用的编码。但是我如何在 SQL 服务器中做到这一点?我使用 varchar(10)
吗? nvarchar(10)
?我希望能够存储各种字符(甚至中文)。
如果您使用 nvarchar(max)
,这将允许所有字符集使用任意数量的字符。系统将优化存储。
解决了行大小限制 here。有关使用 max
.
的限制,请参阅@marc_s 的回答
如果你想要汉字,你需要使用nvarchar(n)
并指定一个有意义的长度n
。
这些是您正在定义的 个字符 ,您需要的 space 是该数字的两倍(因为 SQL 服务器中的任何 Unicode 字符总是使用2 个字节)。
最大。大小为 nvarchar(4000)
- 或者如果您确实需要更多,请使用 nvarchar(max)
(最多 10 亿 个字符)。
我建议 NOT 只对所有内容使用 nvarchar(max)
,因为懒得考虑你真正需要的尺寸!由于它是一个非常大的列,您将无法为其编制索引。
我无法理解如何为我的文本定义一个大小适合我的最大值的列。字符数。在 Oracle 中,我可以创建一个足以容纳 10 个字符的 VARCHAR2(10 CHAR)
。大小取决于数据库中使用的编码。但是我如何在 SQL 服务器中做到这一点?我使用 varchar(10)
吗? nvarchar(10)
?我希望能够存储各种字符(甚至中文)。
如果您使用 nvarchar(max)
,这将允许所有字符集使用任意数量的字符。系统将优化存储。
解决了行大小限制 here。有关使用 max
.
如果你想要汉字,你需要使用nvarchar(n)
并指定一个有意义的长度n
。
这些是您正在定义的 个字符 ,您需要的 space 是该数字的两倍(因为 SQL 服务器中的任何 Unicode 字符总是使用2 个字节)。
最大。大小为 nvarchar(4000)
- 或者如果您确实需要更多,请使用 nvarchar(max)
(最多 10 亿 个字符)。
我建议 NOT 只对所有内容使用 nvarchar(max)
,因为懒得考虑你真正需要的尺寸!由于它是一个非常大的列,您将无法为其编制索引。