<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java堂 &#187; Database</title>
	<atom:link href="http://www.javatang.com/archives/category/database/feed" rel="self" type="application/rss+xml" />
	<link>http://www.javatang.com</link>
	<description>Java Tang</description>
	<lastBuildDate>Thu, 08 Dec 2011 08:29:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MySQL中更新与子查询条件中同一个表中的字段数据</title>
		<link>http://www.javatang.com/archives/2011/12/08/2906565.html</link>
		<comments>http://www.javatang.com/archives/2011/12/08/2906565.html#comments</comments>
		<pubDate>Thu, 08 Dec 2011 08:29:06 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.javatang.com/?p=565</guid>
		<description><![CDATA[在MySQL中使用update语句的时候，Where条件或者值都可以使用子查询，比如： UPDATE table_a SET name=(SELECT name FROM table_b WHERE id=1)&#160; WHERE&#160;id IN (SELECT id FROM table_c WHERE age &#62; 24); 但是如果子查询和更新的表是同一个表的话，MySQL会报如下的错误： Error Code : 1093 You can&#8217;t specify target table &#8216;table_a&#8217; for update in FROM clause 这种情况下就需要使用MySQL的临时表做一个中转，代码如下： -- 将查询的结果写入到临时表中 CREATE&#160;TEMPORARY TABLE tmp_table (SELECT * FROM table_a WHERE NAME='Tom'); UPDATE&#160;table_a SET parentId=(SELECT id FROM tmp_table WHERE [...]]]></description>
			<content:encoded><![CDATA[<p>在MySQL中使用update语句的时候，Where条件或者值都可以使用子查询，比如：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">UPDATE</span><span style="color: Gray;"> </span><span style="color: Blue;">table_a</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">table_b</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;">=</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">WHERE</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">id</span><span style="color: Gray;"> </span><span style="color: Green;">IN</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">table_c</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">age</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">24</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>但是如果子查询和更新的表是同一个表的话，MySQL会报如下的错误：</p>
<blockquote><p>
Error Code : 1093<br />
You can&#8217;t specify target table &#8216;table_a&#8217; for update in FROM clause
</p></blockquote>
<p>这种情况下就需要使用MySQL的临时表做一个中转，代码如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">-- 将查询的结果写入到临时表中</span></li>
<li><span style="color: Green;">CREATE</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">TEMPORARY</span><span style="color: Gray;"> </span><span style="color: Green;">TABLE</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_table</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">SELECT</span><span style="color: Gray;"> * </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">table_a</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: #00008b;">NAME</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">Tom</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">UPDATE</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">table_a</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: Blue;">parentId</span><span style="color: Gray;">=</span><span style="color: Olive;">(</span><span style="color: Green;">SELECT</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;"> </span><span style="color: Green;">FROM</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_table</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: #00008b;">NAME</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">Tom</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;"> = </span><span style="color: Maroon;">100</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">-- 删除临时表</span></li>
<li><span style="color: Green;">DROP</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">TABLE</span><span style="color: Gray;"> </span><span style="color: Blue;">tmp_table</span><span style="color: Gray;">;</span></li></ol></div>
<p>参考资料：<br />
<a href="http://www.cnblogs.com/RoadGY/archive/2011/07/22/2114088.html" target="_blank">语法：MySQL中INSERT INTO SELECT的使用</a><br />
<a href="http://bbs.chinaunix.net/thread-1787620-1-1.html" target="_blank">MySQL中的临时表使用方法</a><br />
<a href="http://www.cnblogs.com/plusium/archive/2010/03/01/1675984.html" target="_blank">关于mysql的 SELECT &#8230; INTO 语法</a><br />
<a href="http://blog.csdn.net/besily/article/details/3194286" target="_blank">MySQL select into 和 SQL select into</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/07/23/342351.html" rel="bookmark" class="crp_title">SQL Server中删除重复数据最快的方法</a></li><li><a href="http://www.javatang.com/archives/2008/03/13/5500263.html" rel="bookmark" class="crp_title">Discuz!一次误删会员用户组的恢复</a></li><li><a href="http://www.javatang.com/archives/2006/09/23/542969.html" rel="bookmark" class="crp_title">PHPWind中出现 “Update Error: INSERT LOW_PRIORITY INTO pw_tmsgs ”问题的解决</a></li><li><a href="http://www.javatang.com/archives/2006/06/13/242443.html" rel="bookmark" class="crp_title">Oracle中的”值和null以及java中的null区别</a></li><li><a href="http://www.javatang.com/archives/2006/05/03/061828.html" rel="bookmark" class="crp_title">密码保护：JDBC操作SQL Server小结</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2011/12/08/2906565.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL常用命令</title>
		<link>http://www.javatang.com/archives/2010/11/11/2207480.html</link>
		<comments>http://www.javatang.com/archives/2010/11/11/2207480.html#comments</comments>
		<pubDate>Thu, 11 Nov 2010 07:22:07 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.javatang.com/?p=480</guid>
		<description><![CDATA[-- Create Users -- MySQL下创建并授权用户 -- ------------------------------------ grant&#160;All on dbname.* to username@localhost identified by &#34;yourpassword&#34;; -- 下面这条命令是MySQL5为了兼容低版本的PHP而创建的 set&#160;password for username@localhost =old_password('yourPassword'); flush&#160;privileges; &#160; &#160; -- Import/Export -- MySQL数据导入导出 -- ------------------------------------ use&#160;dbname; source&#160;'filename'; -- 导入数据，mysqldump为bin目录下面的一个命令工具 mysqldump -u&#160;username -p dbname &#62; &#34;filename&#34; &#160; &#160; -- Ip 授权IP访问 -- ------------------------------------ -- 授权 grant&#160;all on *.* to root@'192.168.1.88' identified [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">-- Create Users</span></li>
<li><span style="color: #ffa500;">-- MySQL下创建并授权用户</span></li>
<li><span style="color: #ffa500;">-- ------------------------------------</span></li>
<li><span style="color: Green;">grant</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">All</span><span style="color: Gray;"> </span><span style="color: Green;">on</span><span style="color: Gray;"> </span><span style="color: Blue;">dbname</span><span style="color: Gray;">.* </span><span style="color: Green;">to</span><span style="color: Gray;"> </span><span style="color: Blue;">username</span><span style="color: Gray;">@</span><span style="color: Blue;">localhost</span><span style="color: Gray;"> </span><span style="color: Blue;">identified</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">yourpassword</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">-- 下面这条命令是MySQL5为了兼容低版本的PHP而创建的</span></li>
<li><span style="color: Green;">set</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">password</span><span style="color: Gray;"> </span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">username</span><span style="color: Gray;">@</span><span style="color: Blue;">localhost</span><span style="color: Gray;"> =</span><span style="color: Blue;">old_password</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">yourPassword</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">flush</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">privileges</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">-- Import/Export</span></li>
<li><span style="color: #ffa500;">-- MySQL数据导入导出</span></li>
<li><span style="color: #ffa500;">-- ------------------------------------</span></li>
<li><span style="color: Blue;">use</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dbname</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">source</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">filename</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">-- 导入数据，mysqldump为bin目录下面的一个命令工具</span></li>
<li><span style="color: Blue;">mysqldump</span><span style="color: Gray;"> -</span><span style="color: Blue;">u</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">username</span><span style="color: Gray;"> -</span><span style="color: Blue;">p</span><span style="color: Gray;"> </span><span style="color: Blue;">dbname</span><span style="color: Gray;"> &gt; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">filename</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">-- Ip 授权IP访问</span></li>
<li><span style="color: #ffa500;">-- ------------------------------------</span></li>
<li><span style="color: #ffa500;">-- 授权</span></li>
<li><span style="color: Green;">grant</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">all</span><span style="color: Gray;"> </span><span style="color: Green;">on</span><span style="color: Gray;"> *.* </span><span style="color: Green;">to</span><span style="color: Gray;"> </span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: #8b0000;">'</span><span style="color: Red;">192.168.1.88</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Blue;">identified</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">yourpassword</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">-- 取消</span></li>
<li><span style="color: Green;">drop</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">user</span><span style="color: Gray;"> </span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: #8b0000;">'</span><span style="color: Red;">192.168.1.88</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li></ol></div>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/03/30/1025157.html" rel="bookmark" class="crp_title">Windows下安装zip包版本的MySQL</a></li><li><a href="http://www.javatang.com/archives/2008/03/13/5500263.html" rel="bookmark" class="crp_title">Discuz!一次误删会员用户组的恢复</a></li><li><a href="http://www.javatang.com/archives/2010/01/23/4518375.html" rel="bookmark" class="crp_title">Maven2部署构件到Nexus时出现的Failed to transfer file错误</a></li><li><a href="http://www.javatang.com/archives/2008/04/13/0212267.html" rel="bookmark" class="crp_title">提高页面相应速度之压缩优化js和css文件</a></li><li><a href="http://www.javatang.com/archives/2006/08/21/010658.html" rel="bookmark" class="crp_title">Resin 3.0.x 经验总结</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2010/11/11/2207480.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>乱码造成本站之前数据破坏，借此谈谈MySQL的乱码问题</title>
		<link>http://www.javatang.com/archives/2007/10/23/1847217.html</link>
		<comments>http://www.javatang.com/archives/2007/10/23/1847217.html#comments</comments>
		<pubDate>Tue, 23 Oct 2007 03:18:47 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sqlyog]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[乱码]]></category>

		<guid isPermaLink="false">http://www.javatang.com/archives/2007/10/23/1847217.html</guid>
		<description><![CDATA[为了防止升级失败我特意用sqlYog将数据备份了一下，然后升级的过程中没有任何问题，因为我发现原来的栏目排列有些改变，于是就直接清空数据然后再导入备份过的数据重新安装一下系统。当前清空数据库的时候没有多想，反正之前有备份。这个时候问题出现了：导入备份后的数据全部变成了乱码！确切的应该说是错码才对，因为出现的不是问号而是一些错误的中文字。 反复试了很多种方法依然是无效，后来从sqlYog官方网站上查到sqlYog从6.0开始每次生成的sql文件编码都是utf-8格式的，另外在操作数据之前都使用 set names &#34;utf8&#34;; 将所有的环境都设置为utf8编码，你可以在sqlYog的查询窗口中使用 SHOW VARIABLES LIKE 'character_set_%'; 查看一下语言环境。sqlYog在查看数据的时候首先查看原来数据库设置的编码格式，然后将其转换为utf8格式的数据，最后输出出来；如果修改数据则相反。上次我在博文中提到使用sqlYog6.03可以直接查看gbk编码的数据，但是查看utf8格式的编码是乱码，我觉得这应该是sqlYog6.03版本中转换编码算法的一个bug，果然在最新发布的6.10rc版本中就修复了这个错误；另外一个就是根数据库默认设置的编码也有很大的关系，因为MySQL使用的默认编码是latin1，正是这样一个非常具有历史原因的设置成为了造成乱码的最直接的原因。这里可能有人会说不是sqlYog操作之前都已经将环境设置为utf8格式了吗？这个时候应该跟MySQL本身的编码没有任何关系了呀。sqlYog操作的时候是不会有关系，但是其他进程(比如php、java等)操作的时候呢？数据写入的时候已经出现乱码了，问题就出在这里。所以为了完全杜绝MySQL的乱码问题，建议将MySQL的默认编码设置为utf8格式。 因为wordpress数据库中的编码都是utf8格式的，我又使用的sqlYog6.03版本，所以无论查看还是备份utf8的数据都是乱码。最后只能是逐一从百度快照中将数据找出来添加到数据库中，因为我在wordpress中设置的remark规则跟时间和最后的数据id号有关系，为了不至于造成在百度中搜索出来的结果失效，所以首先先将原来数据库中的这些数据导入到新的数据中。当然这个时候wordpress已经升级成2.3了，呵呵(苦笑中&#8230;) 目前在2006年8月份之前的数据还没有恢复，将近有80条。我会在最近这段时间将他升级完成的。 参考资料：Which MySQL Character Sets are supported by SQLyog? Related Posts:SQLyog 6.x 开始支持Unicode编码了！！Discuz!一次误删会员用户组的恢复Apache和Resin产生大容量日志的解决办法Windows下安装zip包版本的MySQLPHP中出现“Unable to load dynamic library”问题的解决方法]]></description>
			<content:encoded><![CDATA[<p>为了防止升级失败我特意用<a href="http://www.javatang.com/archives/2007/07/25/2757191.html">sqlYog</a>将数据备份了一下，然后升级的过程中没有任何问题，因为我发现原来的栏目排列有些改变，于是就直接清空数据然后再导入备份过的数据重新安装一下系统。当前清空数据库的时候没有多想，反正之前有备份。这个时候问题出现了：导入备份后的数据全部变成了乱码！确切的应该说是错码才对，因为出现的不是问号而是一些错误的中文字。</p>
<p><img src="http://www.javatang.com/wp-content/messy-code.png" alt="乱码" style="border: black 1px solid" /></p>
<p>反复试了很多种方法依然是无效，后来从sqlYog官方网站上查到sqlYog从6.0开始每次生成的sql文件编码都是utf-8格式的，另外在操作数据之前都使用
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">set</span><span style="color: Gray;"> </span><span style="color: Green;">names</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">utf8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li></ol></div>
<p>将所有的环境都设置为utf8编码，你可以在sqlYog的查询窗口中使用
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">SHOW</span><span style="color: Gray;"> </span><span style="color: Blue;">VARIABLES</span><span style="color: Gray;"> </span><span style="color: Green;">LIKE</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">character_set_%</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li></ol></div>
<p>查看一下语言环境。sqlYog在查看数据的时候首先查看原来数据库设置的编码格式，然后将其转换为utf8格式的数据，最后输出出来；如果修改数据则相反。上次我在博文中提到<a href="http://www.javatang.com/archives/2007/07/25/2757191.html">使用sqlYog6.03可以直接查看gbk编码的数据，但是查看utf8格式的编码是乱码</a>，我觉得这应该是sqlYog6.03版本中转换编码算法的一个bug，果然在最新发布的6.10rc版本中就修复了这个错误；另外一个就是根数据库默认设置的编码也有很大的关系，因为MySQL使用的默认编码是latin1，正是这样一个非常具有历史原因的设置成为了造成乱码的最直接的原因。这里可能有人会说不是sqlYog操作之前都已经将环境设置为utf8格式了吗？这个时候应该跟MySQL本身的编码没有任何关系了呀。sqlYog操作的时候是不会有关系，但是其他进程(比如php、java等)操作的时候呢？数据写入的时候已经出现乱码了，问题就出在这里。所以为了完全杜绝MySQL的乱码问题，建议将MySQL的默认编码设置为utf8格式。</p>
<p>因为wordpress数据库中的编码都是utf8格式的，我又使用的sqlYog6.03版本，所以无论查看还是备份utf8的数据都是乱码。最后只能是逐一从百度快照中将数据找出来添加到数据库中，因为我在wordpress中设置的remark规则跟时间和最后的数据id号有关系，为了不至于造成在百度中搜索出来的结果失效，所以首先先将原来数据库中的这些数据导入到新的数据中。当然这个时候wordpress已经升级成2.3了，呵呵(苦笑中&#8230;)</p>
<p>目前在2006年8月份之前的数据还没有恢复，将近有80条。我会在最近这段时间将他升级完成的。</p>
<p>参考资料：<a target="_blank" href="http://webyog.com/faq/34_102_en.html">Which MySQL Character Sets are supported by SQLyog?</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/07/25/2757191.html" rel="bookmark" class="crp_title">SQLyog 6.x 开始支持Unicode编码了！！</a></li><li><a href="http://www.javatang.com/archives/2008/03/13/5500263.html" rel="bookmark" class="crp_title">Discuz!一次误删会员用户组的恢复</a></li><li><a href="http://www.javatang.com/archives/2007/06/20/1513177.html" rel="bookmark" class="crp_title">Apache和Resin产生大容量日志的解决办法</a></li><li><a href="http://www.javatang.com/archives/2007/03/30/1025157.html" rel="bookmark" class="crp_title">Windows下安装zip包版本的MySQL</a></li><li><a href="http://www.javatang.com/archives/2007/07/04/1548182.html" rel="bookmark" class="crp_title">PHP中出现“Unable to load dynamic library”问题的解决方法</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/10/23/1847217.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin初次安装拒绝登录的问题及解决方法</title>
		<link>http://www.javatang.com/archives/2007/09/11/4535187.html</link>
		<comments>http://www.javatang.com/archives/2007/09/11/4535187.html#comments</comments>
		<pubDate>Tue, 11 Sep 2007 14:45:35 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[DynamicLanguage]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web&Server]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[今天安装phpMyAdmin 2.10的时候修改认证方式为cookie之后进入程序首页登录的时候一直提示访问被拒绝，真的是奇怪了。后来从网上查了一下原来是需要清空一下浏览器缓存。 参考资料：hpMyAdmin 2.10.2 配置 Related Posts:Eclipse3.1中lomboz3.1的配置和开发Borland Optimizeit Suite 经典强大的测试工具MS SQL Server 中事务日志变大的处理Apache2 服务因 1 (0×1) 服务性错误而停止 的问题JDBC优化技巧 &#8211; Performance Tips for the Data Tier (JDBC)]]></description>
			<content:encoded><![CDATA[<p>今天安装phpMyAdmin  2.10的时候修改认证方式为cookie之后进入程序首页登录的时候一直提示访问被拒绝，真的是奇怪了。后来从网上查了一下原来是需要清空一下浏览器缓存。</p>
<p>参考资料：<a href="http://blog.csdn.net/gggxin/archive/2007/06/28/1669936.aspx" target="_blank">hpMyAdmin 2.10.2 配置</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/03/12/11063.html" rel="bookmark" class="crp_title">Eclipse3.1中lomboz3.1的配置和开发</a></li><li><a href="http://www.javatang.com/archives/2006/10/10/160171.html" rel="bookmark" class="crp_title">Borland Optimizeit Suite 经典强大的测试工具</a></li><li><a href="http://www.javatang.com/archives/2006/08/21/444857.html" rel="bookmark" class="crp_title">MS SQL Server 中事务日志变大的处理</a></li><li><a href="http://www.javatang.com/archives/2007/07/23/5805183.html" rel="bookmark" class="crp_title">Apache2 服务因 1 (0×1) 服务性错误而停止 的问题</a></li><li><a href="http://www.javatang.com/archives/2006/05/06/410929.html" rel="bookmark" class="crp_title">JDBC优化技巧 &#8211; Performance Tips for the Data Tier (JDBC)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/09/11/4535187.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLyog 6.x 开始支持Unicode编码了！！</title>
		<link>http://www.javatang.com/archives/2007/07/25/2757191.html</link>
		<comments>http://www.javatang.com/archives/2007/07/25/2757191.html#comments</comments>
		<pubDate>Wed, 25 Jul 2007 10:27:57 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sqlyog]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[一直是使用SQLyog来管理MySQL的，感觉他功能非常的强大，而且使用操作的时候非常的方便。但是一直以来SQLyog有个特别不爽的地方就是不支持Unicode，在查看数据库中的中文时会显示乱码，so如果直接用软件编辑保存的话显示到网页上面就是乱码了，完全没有使用SQL Server管理器那样的方便。 不过现在好了，今天无意间到SQLyog官方网站上面的时候，发现软件已经升级到6.x版本了，我所期待的支持中文的功能也实现了，爽啊~~~ Related Posts:乱码造成本站之前数据破坏，借此谈谈MySQL的乱码问题Google也玩“变脸”儿子于2007.9.2 02:52出生“科学”“信仰”流程图Discuz!一次误删会员用户组的恢复]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.javatang.com/wp-content/sqlyog_box.jpg" target="_blank"><img src="http://www.javatang.com/wp-content/sqlyog_box.thumbnail.jpg" alt="sqlyog_box.jpg" border="0" /></a></p>
<p>一直是使用<a href="http://www.webyog.com/" target="_blank">SQLyog</a>来管理MySQL的，感觉他功能非常的强大，而且使用操作的时候非常的方便。但是一直以来SQLyog有个特别不爽的地方就是不支持Unicode，在查看数据库中的中文时会显示乱码，so如果直接用软件编辑保存的话显示到网页上面就是乱码了，完全没有使用SQL  Server管理器那样的方便。</p>
<p>不过现在好了，今天无意间到SQLyog官方网站上面的时候，发现软件已经升级到6.x版本了，我所期待的<a href="http://www.webyog.com/en/screenshots_sqlyog.php" target="_blank">支持中文的功能也实现了</a>，爽啊~~~</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/10/23/1847217.html" rel="bookmark" class="crp_title">乱码造成本站之前数据破坏，借此谈谈MySQL的乱码问题</a></li><li><a href="http://www.javatang.com/archives/2007/03/22/0105147.html" rel="bookmark" class="crp_title">Google也玩“变脸”</a></li><li><a href="http://www.javatang.com/archives/2007/09/09/2529193.html" rel="bookmark" class="crp_title">儿子于2007.9.2 02:52出生</a></li><li><a href="http://www.javatang.com/archives/2007/03/03/1028103.html" rel="bookmark" class="crp_title">“科学”“信仰”流程图</a></li><li><a href="http://www.javatang.com/archives/2008/03/13/5500263.html" rel="bookmark" class="crp_title">Discuz!一次误删会员用户组的恢复</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/07/25/2757191.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows下安装zip包版本的MySQL</title>
		<link>http://www.javatang.com/archives/2007/03/30/1025157.html</link>
		<comments>http://www.javatang.com/archives/2007/03/30/1025157.html#comments</comments>
		<pubDate>Thu, 29 Mar 2007 18:10:25 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[虽然官方提供了非常好的安装文件，但是有的时候不想每次再重装系统之后都要安装一遍MySQL，需要使用zip包版本的MySQL。在配置的时候有以下几个问题需要了解的，总结一下： 1. 设置MySQL为Windows服务 在Windows下用mysqld-nt.exe可以注册为服务，即用mysqld-nt –install mysql 这会设置为mysqld-nt.exe为mysql服务，相关信息在命令行模式下查询mysqld-nt –verbose –help 2. 启动服务时出现“错误1067”的解决方法 参考手册中明确说明了这个问题： These messages often occur when the MySQL base or data directories are installed in different locations than the default locations (C:\Program Files\MySQL\MySQL Server 5.0 and C:\Program Files\MySQL\MySQL Server 5.0\data, respectively). 上面的意思是在没有将MySQL安装到默认的目录下面的情况下启动Windows服务的时候就会出现上述提示，解决的办法就是指定MySQL跟目录以及数据库目录。在my.ini文件最后增加以下内容，然后将my.ini拷贝到windows目录下。 [mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir [...]]]></description>
			<content:encoded><![CDATA[<p>虽然官方提供了非常好的安装文件，但是有的时候不想每次再重装系统之后都要安装一遍MySQL，需要使用zip包版本的MySQL。在配置的时候有以下几个问题需要了解的，总结一下：</p>
<p><strong>1. 设置MySQL为Windows服务</strong></p>
<p>在Windows下用mysqld-nt.exe可以注册为服务，即用mysqld-nt –install mysql<br />
这会设置为mysqld-nt.exe为mysql服务，相关信息在命令行模式下查询mysqld-nt –verbose –help</p>
<p><strong>2. 启动服务时出现“错误1067”的解决方法</strong></p>
<p>参考手册中明确说明了这个问题：</p>
<blockquote><p>These messages often occur when the MySQL base or data directories are installed in different locations than the default locations (C:\Program Files\MySQL\MySQL Server 5.0 and C:\Program Files\MySQL\MySQL Server 5.0\data, respectively).</p></blockquote>
<p>上面的意思是在没有将MySQL安装到默认的目录下面的情况下启动Windows服务的时候就会出现上述提示，解决的办法就是指定MySQL跟目录以及数据库目录。在my.ini文件最后增加以下内容，然后将my.ini拷贝到windows目录下。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">[mysqld] </li>
<li># set basedir to your installation path </li>
<li>basedir=E:/mysql </li>
<li># set datadir to the location of your data directory </li>
<li>datadir=D:/MySQLdata</li></ol></div>
<p><strong>3. 初始帐号</strong></p>
<p>用户名root，密码为空，所以说默认情况下的MySQL5是不安全的。进入之后立即修改root帐号密码，命令如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">set</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">password</span><span style="color: Gray;"> </span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">localhost</span><span style="color: Gray;"> =</span><span style="color: Blue;">password</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">yourPassword</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Blue;">flush</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">privileges</span><span style="color: Gray;">;</span></li>
</ol></div>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/03/18/521712.html" rel="bookmark" class="crp_title">MySQL-Front查看中文数据出现乱码的解决方法</a></li><li><a href="http://www.javatang.com/archives/2006/09/23/542969.html" rel="bookmark" class="crp_title">PHPWind中出现 “Update Error: INSERT LOW_PRIORITY INTO pw_tmsgs ”问题的解决</a></li><li><a href="http://www.javatang.com/archives/2006/08/21/010658.html" rel="bookmark" class="crp_title">Resin 3.0.x 经验总结</a></li><li><a href="http://www.javatang.com/archives/2010/11/11/2207480.html" rel="bookmark" class="crp_title">MySQL常用命令</a></li><li><a href="http://www.javatang.com/archives/2007/10/30/2016233.html" rel="bookmark" class="crp_title">C++基础之字符串处理函数</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/03/30/1025157.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>迟到的报道－ SQLServer2005 JDBC v1.1正式版发布</title>
		<link>http://www.javatang.com/archives/2006/10/17/495674.html</link>
		<comments>http://www.javatang.com/archives/2006/10/17/495674.html#comments</comments>
		<pubDate>Tue, 17 Oct 2006 04:49:56 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[好久没有上SQL Server JDBC网站，原来早在8月29日就更新驱动了，现在是1.1的正式版。从其中一个开发者的博客上看到了更新的内容： 1. Integrated security 增强了安全连接，不过这个功能只支持 Windows 系统。我记得是需要拷贝一个dll文件 2. Client Failover, Database Mirroring support 支持 客户端失效倍援和数据库镜像功能 　　数据镜像功能其实是SQL Server2005的一个新功能，现在的JDBC驱动也支持了。关于这个功能更多可参考：http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx 　　客户端失效倍援（不知道这个翻译是否准确）的描述是这样的：When connecting to a Sql Server 2005 Database that has a failover partner the JDBC v1.1 driver will cache failover information and retry to the failover partner on primary failure. Additionally you can use the new [...]]]></description>
			<content:encoded><![CDATA[<p>好久没有上SQL Server JDBC网站，原来早在8月29日就更新驱动了，现在是1.1的正式版。从其中一个开发者的博客上看到了更新的内容：</p>
<p>1. Integrated security 增强了安全连接，不过这个功能只支持 Windows 系统。我记得是需要拷贝一个dll文件</p>
<p>2. Client Failover, Database Mirroring support 支持 客户端失效倍援和数据库镜像功能<br />
　　数据镜像功能其实是SQL Server2005的一个新功能，现在的JDBC驱动也支持了。关于这个功能更多可参考：<a target="_blank" href="http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx">http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx</a><br />
　　客户端失效倍援（不知道这个翻译是否准确）的描述是这样的：When connecting to a Sql Server 2005 Database that has a failover partner the JDBC v1.1 driver will cache failover information and retry to the failover partner on primary failure. Additionally you can use the new “failoverPartner” connection string keyword to handle initial connection failure scenarios.</p>
<p>3. 修复了以下上个版本里面的比较严重的bug（前面的数字是提交bug时候产生的序号，没有具体的含义）<br />
&lt;blockquote&gt; &lt;li&gt;426389 Calling Statement.execute no longer causes an SQLException with the</p>
<p>message “sp_cursoropen/sp_cursorprepare: The statement parameter can</p>
<p>only be a single select or a single stored procedure‿ for UPDATE</p>
<p>WHERE queries when the selectMethod=cursor connection property is set.&lt;/li&gt;</p>
<p> &lt;li&gt;436718 Calling PreparedStatement.execute no longer causes an SQLException</p>
<p>with the message “sp_cursoropen/sp_cursorprepare: The statement</p>
<p>parameter can only be a batch or a stored procedure with a single</p>
<p>select, without FOR BROWSE, COMPUTE BY, or variable assignments‿ for</p>
<p>INSERT INTO queries when the selectMethod=cursor connection property is set.&lt;/li&gt;<br />
 &lt;li&gt;450639 The driver no longer throws an SQLException with the message “Server</p>
<p>failed to resume the transaction, desc: 4600000001.‿ when configuring</p>
<p>SQL Server 2005 as the JBoss JMS message store.&lt;/li&gt;<br />
 &lt;li&gt;435796 Executing SQL WRITETEXT statements no longer throws an SQLException</p>
<p>with the message “No TDS_RET_STATUS was found for the stored procedure</p>
<p>output parameters.‿&lt;/li&gt;<br />
 &lt;li&gt;424295 DatabaseMetaData.getMaxConnections no longer throws an SQLException with</p>
<p>the message “The configuration option ‘user connections’ does not exist,</p>
<p>or it may be an advanced option‿ for SQL Server 2005 servers.&lt;/li&gt;<br />
 &lt;li&gt;433394 Calling Statement.executeBatch after setting a BLOB value no longer throws</p>
<p>an SQLException with the message “The conversion from BLOB to BINARY is unsupported.‿&lt;/li&gt;<br />
 &lt;li&gt;435448 The driver no longer throws an SQLException with the message</p>
<p>“com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near ‘-’‿</p>
<p>when sending a BigDecimal prepared statement parameter value to the server</p>
<p>with the 5.0 JRE.&lt;/li&gt;&lt;/blockquote&gt;<br />
参考资料：<br />
JDBC 2005 v1.1 is now available.<br />
&lt;a href=”<a href="http://blogs.msdn.com/angelsb/archive/2006/08/22/713417.aspx">http://blogs.msdn.com/angelsb/archive/2006/08/22/713417.aspx</a>” target=”_blank”&gt;http://blogs.msdn.com/angelsb/archive/2006/08/22/713417.aspx&lt;/a&gt;</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/05/10/293234.html" rel="bookmark" class="crp_title">拿到了SQL Server JDBC V1.1 CTP驱动</a></li><li><a href="http://www.javatang.com/archives/2006/05/07/081332.html" rel="bookmark" class="crp_title">SQL Server JDBC 1.0 中关于executeBatch()方法的两个bug</a></li><li><a href="http://www.javatang.com/archives/2006/06/28/381650.html" rel="bookmark" class="crp_title">微软官方发布SQLServer JDBC 1.1 CTP版本</a></li><li><a href="http://www.javatang.com/archives/2006/05/07/002930.html" rel="bookmark" class="crp_title">SQL Server JDBC 1.0中提高Select的效率</a></li><li><a href="http://www.javatang.com/archives/2007/05/30/1755165.html" rel="bookmark" class="crp_title">Windows任务栏出现多个相同栏的解决方法</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/10/17/495674.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>怎样在SQL Server2005中删除数据库用户</title>
		<link>http://www.javatang.com/archives/2006/08/28/402448.html</link>
		<comments>http://www.javatang.com/archives/2006/08/28/402448.html#comments</comments>
		<pubDate>Mon, 28 Aug 2006 04:40:24 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[以前在SQL Server2000中删除数据库用户很简单，只要直接删除或者使用Drop User命令就可以了，但是SQL Server2005中直接操作是不行的，这是因为在SQL Server 2005中架构是做为实体对待的。所以要删除该用户，需要先删除该用户所拥有的架构或更改此架构的所有者。否则会提示”数据库主体在该数据库中拥有架构，无法删除。 另外，每一个数据库用户对应于一个系统登陆帐号，并且每一个架构只能赋予一个用户。所以直接删除用户的架构是不可以的，可以这样：首先创建一个新的登陆名，然后将需要删除的架构赋予这个新用户。这样就可以删除之前的用户了。 参考资料： SQL 2005 应用手记 http://silverfox.mynew.ws/blog/index.php?/archives/111-SQL-2005.html Related Posts:VS2005按照过程中总是提示插入光盘的解决方法Eclipse3.1中lomboz3.1的配置和开发MS SQL Server 中事务日志变大的处理Apache+Resin下如何写伪静态和301跳转理解proxool中的maximum-active-time]]></description>
			<content:encoded><![CDATA[<p>以前在SQL Server2000中删除数据库用户很简单，只要直接删除或者使用Drop User命令就可以了，但是SQL Server2005中直接操作是不行的，这是因为在SQL Server 2005中架构是做为实体对待的。所以要删除该用户，需要先删除该用户所拥有的架构或更改此架构的所有者。否则会提示”数据库主体在该数据库中拥有架构，无法删除。</p>
<p>另外，每一个数据库用户对应于一个系统登陆帐号，并且每一个架构只能赋予一个用户。所以直接删除用户的架构是不可以的，可以这样：首先创建一个新的登陆名，然后将需要删除的架构赋予这个新用户。这样就可以删除之前的用户了。</p>
<p>参考资料：<br />
SQL 2005 应用手记<br />
<a href="http://silverfox.mynew.ws/blog/index.php?/archives/111-SQL-2005.html" target="_blank">http://silverfox.mynew.ws/blog/index.php?/archives/111-SQL-2005.html</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/04/15/5216159.html" rel="bookmark" class="crp_title">VS2005按照过程中总是提示插入光盘的解决方法</a></li><li><a href="http://www.javatang.com/archives/2006/03/12/11063.html" rel="bookmark" class="crp_title">Eclipse3.1中lomboz3.1的配置和开发</a></li><li><a href="http://www.javatang.com/archives/2006/08/21/444857.html" rel="bookmark" class="crp_title">MS SQL Server 中事务日志变大的处理</a></li><li><a href="http://www.javatang.com/archives/2008/10/18/1942276.html" rel="bookmark" class="crp_title">Apache+Resin下如何写伪静态和301跳转</a></li><li><a href="http://www.javatang.com/archives/2006/05/01/301227.html" rel="bookmark" class="crp_title">理解proxool中的maximum-active-time</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/08/28/402448.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS SQL Server 中事务日志变大的处理</title>
		<link>http://www.javatang.com/archives/2006/08/21/444857.html</link>
		<comments>http://www.javatang.com/archives/2006/08/21/444857.html#comments</comments>
		<pubDate>Mon, 21 Aug 2006 00:44:48 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[在SQL Server中经常遇到事务日志变大的情况，除了将数据库设置为“自动收缩”外，还可以使用下面的SQL命令进行快速清除数据库中的事务日志，命令如下： -- 第一步：清空日志 DUMP&#160;TRANSACTION databasename WITH NO_LOG&#160; -- 第二步：截断事务日志 BACKUP&#160;LOG databasename WITH NO_LOG&#160; -- 第三步：收缩数据库 DBCC&#160;SHRINKDATABASE(databasename) 需要说明几点： 1. 上面的SQL命令需要按照顺序执行； 2. 执行上面的命令通常比直接使用右键菜单中的“收缩”命令要快很多 参考资料： SQL SERVER 数据库日志已满，如何收缩数据库日志 http://blog.csdn.net/faintbear/archive/2005/02/06/283316.aspx 如何收缩数据库日志 http://www.cndiy8.com/data/web5701/20050228/20050228__3794589.html Related Posts:Eclipse3.1中lomboz3.1的配置和开发Borland Optimizeit Suite 经典强大的测试工具JDBC优化技巧 &#8211; Performance Tips for the Data Tier (JDBC)迟到的报道－ SQLServer2005 JDBC v1.1正式版发布微软官方发布SQLServer JDBC 1.1 CTP版本]]></description>
			<content:encoded><![CDATA[<p>在SQL Server中经常遇到事务日志变大的情况，除了将数据库设置为“自动收缩”外，还可以使用下面的SQL命令进行快速清除数据库中的事务日志，命令如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">-- 第一步：清空日志 </span></li>
<li><span style="color: Blue;">DUMP</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">TRANSACTION</span><span style="color: Gray;"> </span><span style="color: Blue;">databasename</span><span style="color: Gray;"> </span><span style="color: Green;">WITH</span><span style="color: Gray;"> </span><span style="color: Blue;">NO_LOG</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">-- 第二步：截断事务日志 </span></li>
<li><span style="color: Blue;">BACKUP</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">LOG</span><span style="color: Gray;"> </span><span style="color: Blue;">databasename</span><span style="color: Gray;"> </span><span style="color: Green;">WITH</span><span style="color: Gray;"> </span><span style="color: Blue;">NO_LOG</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">-- 第三步：收缩数据库 </span></li>
<li><span style="color: Blue;">DBCC</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">SHRINKDATABASE</span><span style="color: Olive;">(</span><span style="color: Blue;">databasename</span><span style="color: Olive;">)</span></li></ol></div>
<p>需要说明几点：<br />
1. 上面的SQL命令需要按照顺序执行；<br />
2. 执行上面的命令通常比直接使用右键菜单中的“收缩”命令要快很多</p>
<p>参考资料：<br />
SQL SERVER 数据库日志已满，如何收缩数据库日志<br />
<a target="_blank" href="http://blog.csdn.net/faintbear/archive/2005/02/06/283316.aspx">http://blog.csdn.net/faintbear/archive/2005/02/06/283316.aspx</a><br />
如何收缩数据库日志<br />
<a target="_blank" href="http://www.cndiy8.com/data/web5701/20050228/20050228__3794589.html">http://www.cndiy8.com/data/web5701/20050228/20050228__3794589.html</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/03/12/11063.html" rel="bookmark" class="crp_title">Eclipse3.1中lomboz3.1的配置和开发</a></li><li><a href="http://www.javatang.com/archives/2006/10/10/160171.html" rel="bookmark" class="crp_title">Borland Optimizeit Suite 经典强大的测试工具</a></li><li><a href="http://www.javatang.com/archives/2006/05/06/410929.html" rel="bookmark" class="crp_title">JDBC优化技巧 &#8211; Performance Tips for the Data Tier (JDBC)</a></li><li><a href="http://www.javatang.com/archives/2006/10/17/495674.html" rel="bookmark" class="crp_title">迟到的报道－ SQLServer2005 JDBC v1.1正式版发布</a></li><li><a href="http://www.javatang.com/archives/2006/06/28/381650.html" rel="bookmark" class="crp_title">微软官方发布SQLServer JDBC 1.1 CTP版本</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/08/21/444857.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server中删除重复数据最快的方法</title>
		<link>http://www.javatang.com/archives/2006/07/23/342351.html</link>
		<comments>http://www.javatang.com/archives/2006/07/23/342351.html#comments</comments>
		<pubDate>Sun, 23 Jul 2006 15:34:23 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sql语句]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[由于种种原因，在数据库中出现了我们不希望出现的重复数据，当对这些重复的数据进行删除的时候有许多种方法。我发现在网上流行的一种方法是利用临时表的方法，SQL脚本如下： select distinct * into #Tmp from tableName drop&#160;table tableName&#160; select * into&#160;tableName from #Tmp drop&#160;table #Tmp 该方法首先使用select distinct命令将不重复的列表数据写入到临时表#Tmp中，然后删除原来的表，再将临时表中的数据写入到tableName中，最后删除临时表。 但是这种方法执行效率是一个方面，另外如果数据库中有text类型的字段的话将不能执行，非常的有局限性。 下面提供一个通用的方法并且执行效率也是非常不错的，脚本如下： declare @max int,@rowname varchar(400)&#160; declare&#160;cur_rows cursor local for&#160; &#160; &#160; select&#160;repeatedrow,count(*) from tableName&#160; group by repeatedrow having count(*) &#62; 1&#160; &#160; open&#160;cur_rows&#160; fetch&#160;cur_rows into @rowname ,@max&#160; while @@fetch_status=0&#160; begin&#160; &#160; &#160; select @max = [...]]]></description>
			<content:encoded><![CDATA[<p>由于种种原因，在数据库中出现了我们不希望出现的重复数据，当对这些重复的数据进行删除的时候有许多种方法。我发现在网上流行的一种方法是利用临时表的方法，SQL脚本如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Green;">distinct</span><span style="color: Gray;"> * </span><span style="color: Green;">into</span><span style="color: Gray;"> </span><span style="color: #ffa500;">#Tmp from tableName </span></li>
<li><span style="color: Green;">drop</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: Blue;">tableName</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">select</span><span style="color: Gray;"> * </span><span style="color: Green;">into</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tableName</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: #ffa500;">#Tmp </span></li>
<li><span style="color: Green;">drop</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: #ffa500;">#Tmp</span></li></ol></div>
<p>该方法首先使用select distinct命令将不重复的列表数据写入到临时表#Tmp中，然后删除原来的表，再将临时表中的数据写入到tableName中，最后删除临时表。<br />
但是这种方法执行效率是一个方面，另外如果数据库中有text类型的字段的话将不能执行，非常的有局限性。</p>
<p>下面提供一个通用的方法并且执行效率也是非常不错的，脚本如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">declare</span><span style="color: Gray;"> @</span><span style="color: #00008b;">max</span><span style="color: Gray;"> </span><span style="color: Green;">int</span><span style="color: Gray;">,@</span><span style="color: Blue;">rowname</span><span style="color: Gray;"> </span><span style="color: Green;">varchar</span><span style="color: Olive;">(</span><span style="color: Maroon;">400</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">declare</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cur_rows</span><span style="color: Gray;"> </span><span style="color: Green;">cursor</span><span style="color: Gray;"> </span><span style="color: Green;">local</span><span style="color: Gray;"> </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">repeatedrow</span><span style="color: Gray;">,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tableName</span><span style="color: Gray;">&nbsp; </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">repeatedrow</span><span style="color: Gray;"> </span><span style="color: Green;">having</span><span style="color: Gray;"> </span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Green;">open</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cur_rows</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">fetch</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cur_rows</span><span style="color: Gray;"> </span><span style="color: Green;">into</span><span style="color: Gray;"> @</span><span style="color: Blue;">rowname</span><span style="color: Gray;"> ,@</span><span style="color: #00008b;">max</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">while</span><span style="color: Gray;"> @@</span><span style="color: Blue;">fetch_status</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">begin</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">select</span><span style="color: Gray;"> @</span><span style="color: #00008b;">max</span><span style="color: Gray;"> = @</span><span style="color: #00008b;">max</span><span style="color: Gray;"> -</span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">set</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">rowcount</span><span style="color: Gray;"> @</span><span style="color: #00008b;">max</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">delete</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tableName</span><span style="color: Gray;">&nbsp; </span><span style="color: Green;">where</span><span style="color: Gray;"> </span><span style="color: Blue;">repeatedrow</span><span style="color: Gray;"> = @</span><span style="color: Blue;">rowname</span><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">fetch</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cur_rows</span><span style="color: Gray;"> </span><span style="color: Green;">into</span><span style="color: Gray;"> @</span><span style="color: Blue;">rowname</span><span style="color: Gray;"> ,@</span><span style="color: #00008b;">max</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">end</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">close</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cur_rows</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">set</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">rowcount</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span></li></ol></div>
<p>简单说明一下：首先声明了两个变量，一个是记录重复的数量，另外一个是记录重复字段的值，变量的类型以及长度可根据你实际的字段进行定义；接下来声明一个游标，该游标主要是列出重复的数据以及重复的数量；然后打开游标并从中取出数据，其中“select @max = @max -1”这句的意思是保留一条重复数据，剩下的逐一删除；最后关闭游标，搞定。</p>
<p>执行完教本之后可以使用下面的教本检查是否含有重复的数据：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">select</span><span style="color: Gray;"> </span><span style="color: Blue;">repeatedrow</span><span style="color: Gray;">,</span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">from</span><span style="color: Gray;"> </span><span style="color: Blue;">tableName</span><span style="color: Gray;">&nbsp; </span><span style="color: Green;">group</span><span style="color: Gray;"> </span><span style="color: Green;">by</span><span style="color: Gray;"> </span><span style="color: Blue;">repeatedrow</span><span style="color: Gray;"> </span><span style="color: Green;">having</span><span style="color: Gray;"> </span><span style="color: #00008b;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">*</span><span style="color: Olive;">)</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">1</span></li></ol></div>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2011/12/08/2906565.html" rel="bookmark" class="crp_title">MySQL中更新与子查询条件中同一个表中的字段数据</a></li><li><a href="http://www.javatang.com/archives/2008/03/13/5500263.html" rel="bookmark" class="crp_title">Discuz!一次误删会员用户组的恢复</a></li><li><a href="http://www.javatang.com/archives/2006/05/07/002930.html" rel="bookmark" class="crp_title">SQL Server JDBC 1.0中提高Select的效率</a></li><li><a href="http://www.javatang.com/archives/2006/06/13/242443.html" rel="bookmark" class="crp_title">Oracle中的”值和null以及java中的null区别</a></li><li><a href="http://www.javatang.com/archives/2006/05/03/061828.html" rel="bookmark" class="crp_title">密码保护：JDBC操作SQL Server小结</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/07/23/342351.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.javatang.com @ 2012-02-10 08:16:36 -->
