字符串的SQL Server数据类型差异

时间:2012-07-31 09:40:15

标签: sql-server

我想知道SQL Server中存储字符串的不同数据类型之间的区别。

例如ntextnvarchar(X)varcharnvarchar(max)等。

在灵活性,资源使用和性能方面有什么建议?

3 个答案:

答案 0 :(得分:0)

  • N unicode 的所有字符串类型 - 每个字符2个字节,将存储西里尔字母,亚洲字母,阿拉伯字母,希伯来字母等字符串 - 而不存在字符串的字符串N不是unicode(只能正确存储西欧/ ASCII字符)

  • TEXTNTEXT已弃用 - 请勿再使用这些内容 - 请改用(N)VARCHAR(MAX) - 有关详细信息,请参阅relevant MSDN documentation on that topic

  • NVARCHAR(X)是一个“普通”字符串,最大值。 8000字节的数据(4000个Unicode或8000个非Unicode字符) - 存储在SQL Server的常规页面中

  • NVARCHAR(MAX)是一种特殊类型,最多2 GB的存储空间(10亿个Unicode字符) - 但它需要特殊的存储处理,需要更多的工作量,比常规字符串执行速度慢一些;在绝对需要时使用

答案 1 :(得分:0)

请参阅下面的链接,了解nvarchar和varchar之间的区别,然后选择最适合您的

What is the difference between varchar and nvarchar?

答案 2 :(得分:0)

对于普通英文字母,请使用varchar,对于任何其他语言和外来字符,请使用nvarchar。 varchar每个charcater使用1个字节进行存储,nvarchar每个字符使用2个字节。