1、各自的定义: ? nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ? varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。2、区别: ? 从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的; ? 从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储; ? 在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率; ?如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。这点要注意:varchar 适合与存储英文和数字; nvarchr一般用于存储中文或其他语言的输入,因为 这样,可以防止到其他语言平台上出现乱码的
详细解决方案
SqlServer中nvarchar和varchar的差别
热度:60 发布时间:2016-05-05 10:13:34.0
1、各自的定义: ? nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ? varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。2、区别: ? 从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的; ? 从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储; ? 在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率; ?如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。这点要注意:varchar 适合与存储英文和数字; nvarchr一般用于存储中文或其他语言的输入,因为 这样,可以防止到其他语言平台上出现乱码的
相关解决方案
- [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.多谢
- com.microsoft.sqlserver.jdbc.SQLServerException: 列名 n_id 无效。解决方案
- com.microsoft.sqlserver.jdbc.SQLServerException: 该联接已关闭
- Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'解决方法
- com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。该怎么解决
- oracle 安插 LONG VARCHAR 类型数据
- com.microsoft.sqlserver.jdbc.SQLServerException: 没为参数号 2 设置值
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。该用户与可托 SQL Server
- java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.解决思路
- java sqlserver jdbc有关问题
- asp.net mvc3.0+sqlserver 高并发日记系统解决方案,求思路
- asp.net +sqlserver 能不能 读取一次数据库,然后按条件输出,该如何解决
- 参数化查询 '(@mbox varchar(150),@age int,@address varchar' 亟需参数 '@mbox'但未提供该参数
- .NET代码 new SqlParameter("@tName" SqlDbType.VarChar, max)用什么取代max,该如何解决
- sqlserver bulk insert 远道导入数据!
- 求教在将 varchar 值转换成数据类型 int 时失败,该怎么处理
- sqlserver 2005 的問題,该如何处理
- {"将 varchar 值 'P20120717-001' 转换为数据类型为 smallint 的列时发生语法异常。"}
- sqlserver 数据库备份,该怎么处理
- cmd.Parameters.Add("@uid"SqlDbType.NVarChar,50);这句什么意思?解决办法
- 未能加载资料或程序集“Microsoft.SqlServer.Replication”或它的某一个依赖项。试图加载格式不正确的程序
- MS sqlserver 查询有关问题,
- 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。解决思路
- (回帖给分)在将 varchar 值 转换成数据类型 int 时失败。该如何解决
- Microsoft.SqlServer.Replication.dll 引发的IIS异常
- C# SQLServer 企业应用解决思路
- sqlserver like '%,3,%' 有关问题。
- sqlserver 建数据库时表示时间,金额和重量的字段用什么数据类型好,有人说全用nvarchar因为好操作,求解,该怎么解决
- sqlserver 表的ID有关问题