﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-绿野仙踪-随笔分类-其他</title><link>http://www.blogjava.net/ciyuanlong/category/38957.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 27 May 2009 22:42:04 GMT</lastBuildDate><pubDate>Wed, 27 May 2009 22:42:04 GMT</pubDate><ttl>60</ttl><item><title>nchar，char，varchar与nvarchar区别(转自木子书房，不知道怎么转，就建了随笔)</title><link>http://www.blogjava.net/ciyuanlong/archive/2009/05/27/278237.html</link><dc:creator>ciyuanlong</dc:creator><author>ciyuanlong</author><pubDate>Wed, 27 May 2009 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/ciyuanlong/archive/2009/05/27/278237.html</guid><wfw:comment>http://www.blogjava.net/ciyuanlong/comments/278237.html</wfw:comment><comments>http://www.blogjava.net/ciyuanlong/archive/2009/05/27/278237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ciyuanlong/comments/commentRss/278237.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ciyuanlong/services/trackbacks/278237.html</trackback:ping><description><![CDATA[最近在公司里做项目，遇到一个问题，建的数据库里的中文字符和音标显示为乱码，组里的人所有字符都用varchar表示，所以出现上诉问题，当改为Nvarchar后，问题得到解决。所以有必要把他们的区别再重新复习一遍。
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char类型：&nbsp;对英文(ASCII)字符占用1个字节，对一个汉字占用2个字节，CHAR存储定长数据很方便，CHAR字段上的索引效率级高，比如定义char(10)，那么不论你存储的数据是否达到了10个字节，都要占去10个字节的空间。因为是固定长度，所以速度效率高。&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Varchar类型：Varchar 的类型不以空格填满，比如varchar(100)，但它的值只是"qian",则它的值就是"qian"<br />
而char 不一样，比如char(100),它的值是"qian"，而实际上它在数据库中是"qian "(qian后共有96个空格，就是把它填满为100个字节)。 <br />
<br />
<span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于char是以固定长度的，所以它的速度会比varchar快得多!但程序处理起来要麻烦一点，要用trim之类的函数把两边的空格去掉!</span></p>
<p><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>VARCHAR存储变长数据，但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的，我们只知道它不可能超过10个字符，把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么&#8220;+1&#8221;呢？这一个字节用于保存实际使用了多大的长度。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nchar类型和Nvarchar类型是怎么一回事呢？为了与其他多种字符的转换，如中文，音标等，对每个英文(ASCII)字符都占用2个字节，对一个汉字也占用两个字节，所有的字符都占用2个字节。</p>
<p>例如</p>
<blockquote dir="ltr" style="margin-right: 0px">
<p>varchar(n):变长型字符数据类型，存储最长长度为8,000 个字符。<br />
<br />
举个例子：<br />
insert a select '木子a'<br />
--- 存储长度为5个字节，余下的3个字节全部释放<br />
insert a select '木神易<br />
----存储长度为6个字节，余下的2个字节全部释放<br />
---意思是varchar变长字符数据类型与存储数据的实际长度是一致的<br />
<br />
nvarchar(n):可变长度 Unicode 数据，其最大长度为 4,000 字符。<br />
字节的存储大小是所输入字符个数的两倍，<br />
就是说它是双字节来存储数据的。<br />
如果存储数据如果存在单字节时，它也是以双字节来占用存储<nobr style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" target="_blank">空间</nobr>的。</p>
<p>varchar一般适用于英文和数字，Nvarchar适用中文和其他字符，其中<span style="color: #000000">N表示Unicode常量，可以解决多语言字符集之间的转换问题</span></p>
</blockquote>
<img src ="http://www.blogjava.net/ciyuanlong/aggbug/278237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ciyuanlong/" target="_blank">ciyuanlong</a> 2009-05-27 17:43 <a href="http://www.blogjava.net/ciyuanlong/archive/2009/05/27/278237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vss 清空密码</title><link>http://www.blogjava.net/ciyuanlong/archive/2009/04/10/264817.html</link><dc:creator>ciyuanlong</dc:creator><author>ciyuanlong</author><pubDate>Fri, 10 Apr 2009 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/ciyuanlong/archive/2009/04/10/264817.html</guid><wfw:comment>http://www.blogjava.net/ciyuanlong/comments/264817.html</wfw:comment><comments>http://www.blogjava.net/ciyuanlong/archive/2009/04/10/264817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ciyuanlong/comments/commentRss/264817.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ciyuanlong/services/trackbacks/264817.html</trackback:ping><description><![CDATA[0:80 55 55 bc 7f 41 64 6d 69 6e 00 00 00 00 00 00 00&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br />
0:90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br />
0:a0 00 00 00 00 90 6e 00 00 a8 01 00 00 00 00 00 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
如果忘记了密码，打开你vss数据库所在的文件夹，打开data目录，&nbsp;找到um.dat文件，用hex编辑器打开编辑它，从offset 80的55 55 开始将值改为如上文所述的样子，然后保存，这样um.dat文件就回到了初始状态，然后打开vss admin,用admin用户登录，不需要密码了。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<p><span>经测试VSS2005同样适用：）.</span></p>
<img src ="http://www.blogjava.net/ciyuanlong/aggbug/264817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ciyuanlong/" target="_blank">ciyuanlong</a> 2009-04-10 13:39 <a href="http://www.blogjava.net/ciyuanlong/archive/2009/04/10/264817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>