A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马丁巍 中级黑马   /  2012-12-14 15:16  /  1541 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,请问大家有的时候需要在nvarchar()数据类型前加N ,有的时候不需要,请问这个N 代表着什么,什么时候需要加

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
一般有中文的时候加N,防止乱码问题

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
Mayi 发表于 2012-12-14 15:40
一般有中文的时候加N,防止乱码问题

其实主要还是存储的问题,英文占一个字节,而中文占两个字节,
回复 使用道具 举报
坑爹的网速啊....
总结一句~~加N后会改变存储的字符集,编程unicode~~
完了~~
回复 使用道具 举报
你好,我也是刚刚了解到这两个的区别:varchar(n)代表长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。
而nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
varchar(n) 可变长 效率没char高 灵活 n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节.
nvarchar(n) 可变长 处理unicode数据类型(所有的字符使用两个字节表示) n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零.

一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马