varchar或nvarchar

Wah*_*eed 13 sql sql-server variables sql-server-2005

我存储名字和姓氏,每个最多30个字符.哪个更好varcharnvarchar.

我已阅读,nvarchar尽可能多的空间两倍占用比varcharnvarchar用于国际化.

所以我建议你应该使用:nvarchar或者varchar

另外,请告诉我两者的表现.两者的表现是相同的还是性能不同.因为空间不是太大的问题.问题是表现.

dav*_*ave 19

基本上,nvarchar意味着您可以处理许多字母表,而不仅仅是普通英语.从技术上讲,它意味着unicode支持,而不仅仅是ANSI.这意味着双倍宽度字符或大约两倍的空间.这些天,磁盘空间这么便宜,你还不如用nvarchar的从一开始,而不是去通过具有产品的生命周期内改变的痛苦.

如果你确定你只需要支持一种语言就可以使用varchar,否则我会选择nvarchar.

这已经在之前讨论过.

编辑:如注释中所述,将ascii更改为ANSI.

  • 非常挑剔:实际上,VARCHAR存储ANSI数据--8位,通常基于西欧或冰岛等代码页或您需要的任何东西:-)它是ANSI - 8位 - 不是ASCII(= 7位) (3认同)

Kir*_*tan 7

首先,澄清一下,nvarchar存储unicode数据,同时varchar存储ANSI(8位)数据.它们的功能相同,但nvarchar占用的空间是原来的两倍.

通常,我更喜欢使用varchar数据类型存储用户名,除非这些名称的字符超出了varchar可以存储的字符的边界.

它还取决于数据库整理.例如varchar,如果您的数据库整理是,您将无法在字段中存储俄语字符LATIN_CS_AS.但是,如果您正在处理仅在俄罗斯使用的本地应用程序,则将数据库排序规则设置为俄语.这将做的是,它将允许您在varchar字段中输入俄语字符,节省一些空间.

但是,现在,大多数正在开发的应用程序都是国际性的,因此您必须自己决定注册所有用户,并根据这些决定数据类型.