以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』 (http://bbs.xml.org.cn/list.asp?boardid=22) ---- 在SQL SERVER 2000中字符形数据类型的详细解释 (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=47185) |
-- 作者:dogog -- 发布时间:5/19/2007 4:31:00 PM -- 在SQL SERVER 2000中字符形数据类型的详细解释 nchar,nvarchar与char,varchar的区别- - char,varchar用于描述定,变长的字符型数据。 nchar,nvarchar用来存储Unicode字符集的定,变长字符型数据。
如: SQL> create table test_char (char_col char(10), varchar_col varchar2(10)); SQL> insert into test_char values ('定长', '变长'); SQL> SELECT DUMP(CHAR_COL, 16) D_CHAR FROM TEST_CHAR; SQL> create table test_nchar (nchar_col nchar(10), nvarchar_col nvarchar2(10)); SQL> insert into test_nchar values ('nchar定长', 'nvarchar变长'); 如果按照刚才中文的计算方法,'nvarchar变长'的长度是8+2*2=12已经超过了数据类型定义的大小,可是为什么插入成功了? SQL> select dump(nchar_col, 16) from test_nchar; 这下就明白了,虽然仍然是采用ascii码存储,但是nchar使用的AL16UTF16字符集,编码长度变为2个字节。这样中文使用两个字节,对于可以用一个字节就表示的英文字符,采用了高位补0的方式凑足2位,这样,对于采用AL16UTF16字符集的nchar类型,无论中文还是英文都用2位字符表示。因此'nvarchar变长'的长度是10,并没有超过数据类型的限制 |
-- 作者:dogog -- 发布时间:5/19/2007 4:33:00 PM -- 在SQL SERVER 2000中,CHAR和VCHAR可以放8000个字符 而NCHAR和NVARCHAR只能放4000个吧 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |