﻿<?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>博客园-数据库团队</title><link>http://database.cnblogs.com</link><description>数据库开发与管理，包括SQL Server, Oracle, DB2, TeraData, MySQL等</description><language>zh-cn</language><lastBuildDate>Sun, 27 Jul 2008 00:15:52 GMT</lastBuildDate><pubDate>Sun, 27 Jul 2008 00:15:52 GMT</pubDate><ttl>60</ttl><item><title>如果你的数据库文件只剩下数据文件没有日志文件时，如何附加</title><link>http://www.cnblogs.com/yukaizhao/archive/2008/07/23/sp_attach_single_file_db.html</link><dc:creator>玉开</dc:creator><author>玉开</author><pubDate>Wed, 23 Jul 2008 09:06:00 GMT</pubDate><guid>http://www.cnblogs.com/yukaizhao/archive/2008/07/23/sp_attach_single_file_db.html</guid><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/yukaizhao/archive/2008/07/23/sp_attach_single_file_db.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1249820.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41317/" target="_blank">[新闻]iPhone 3G拆解图</a>]]></description></item><item><title>使用链接服务器在异构数据库中查询数据</title><link>http://www.cnblogs.com/studyzy/archive/2008/07/21/1247824.html</link><dc:creator>深蓝</dc:creator><author>深蓝</author><pubDate>Mon, 21 Jul 2008 09:00:00 GMT</pubDate><guid>http://www.cnblogs.com/studyzy/archive/2008/07/21/1247824.html</guid><description><![CDATA[摘要: SQL Server提供了链接服务器用于分布式查询异构数据库。通过链接服务器可以链接到Oracle、Sybase、DB2、SQL Server等大型关系数据库，也可以连接到Access、Excel等文件数据库，甚至可以连接到目录服务（AD）、索引服务等。要链接到一种数据库需要使用相应的接口。微软为很多数据库提供了驱动接口，所以可以直接使用，但是对于没有提供驱动的数据库比如Sybase，则需要在服务器上安装对应数据库厂商提供的驱动。
使用SSMS或者使用T-SQL语句配置成功链接服务器后便可通过：
[服务器名].[数据库名].[架构名].[对象名]
的形式来访问数据库。&nbsp;&nbsp;<a href='http://www.cnblogs.com/studyzy/archive/2008/07/21/1247824.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1247824.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41316/" target="_blank">[新闻]腾讯CEO马化腾:中国互联网业准备再过冬</a>]]></description></item><item><title>SQL语句实现移动数据库文件</title><link>http://www.cnblogs.com/wghao/archive/2008/07/17/1245554.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Thu, 17 Jul 2008 15:22:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/07/17/1245554.html</guid><description><![CDATA[摘要: 在工作中，我们有时候需要移动数据库文件到新的目录，特别是在数据库很多的情况，移动数据库脚本能帮我们很大的忙，减少了很多不必要的繁琐的手工操作。&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/07/17/1245554.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1245554.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41315/" target="_blank">[新闻]F8 Keynote Speech[多图]</a>]]></description></item><item><title>sql数据库反规范设计常用方法</title><link>http://www.cnblogs.com/perfectdesign/archive/2008/07/14/databasedesign.html</link><dc:creator>PerfectDesign</dc:creator><author>PerfectDesign</author><pubDate>Mon, 14 Jul 2008 06:35:00 GMT</pubDate><guid>http://www.cnblogs.com/perfectdesign/archive/2008/07/14/databasedesign.html</guid><description><![CDATA[一位DBA朋友狼总结了一个关于此方面的几个原则，其实我们在设计的时候也是在不经意间也遵循了这些原则，拿来跟大家共享一下，特别有感于这些天面试程序员，简历上写精通数据库设计，一问就说几个范式，其他冗余的数据都是垃圾，偶真是比较汗颜啊。。。。<br />
<br />
不废话了，原则如下：<br />
<p><font face="Verdana">反规范化设计</font></p>
<p><font face="Verdana">为了提升性能而使用反规范化设计</font></p>
<p><font face="Verdana">常用方法：<br />
A、在多个表中存储某个字段的副本<br />
B、在父表中存储汇总值<br />
C、将活动数据和历史数据分开存储<br />
D、应用程序本地缓存数据<br />
E、使用临时表、中间表、索引视图<br />
</font></p>
<br />
大家如果还有其他原则，可以跟帖，谢谢！
<img src ="http://database.cnblogs.comaggbug/1242480.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41314/" target="_blank">[新闻]奥运核心资源被分食 搜狐央视网谁忽悠谁？</a>]]></description></item><item><title>在存储过程中动态创建表</title><link>http://www.cnblogs.com/liulanglang/archive/2008/07/12/1241323.html</link><dc:creator>流浪浪</dc:creator><author>流浪浪</author><pubDate>Sat, 12 Jul 2008 03:03:00 GMT</pubDate><guid>http://www.cnblogs.com/liulanglang/archive/2008/07/12/1241323.html</guid><description><![CDATA[摘要: 储过程中动态创建表&nbsp;&nbsp;<a href='http://www.cnblogs.com/liulanglang/archive/2008/07/12/1241323.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1241323.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41313/" target="_blank">[新闻]微软推新型搜索技术"BrowseRank"挑战谷歌</a>]]></description></item><item><title>获取某命名规则下一系列表的总条数</title><link>http://www.cnblogs.com/tenghoo/archive/2008/07/09/1238808.html</link><dc:creator>青羽</dc:creator><author>青羽</author><pubDate>Wed, 09 Jul 2008 04:43:00 GMT</pubDate><guid>http://www.cnblogs.com/tenghoo/archive/2008/07/09/1238808.html</guid><description><![CDATA[摘要: 场景：有1000个后缀逐渐递增的表(如果是上万了也可做相应的改动实现)，获取这些表总的数据条数&nbsp;&nbsp;<a href='http://www.cnblogs.com/tenghoo/archive/2008/07/09/1238808.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1238808.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41312/" target="_blank">[新闻]2008年7月26日IT博客精选</a>]]></description></item><item><title>用SQL语句写某一月份的日历</title><link>http://www.cnblogs.com/wghao/archive/2008/07/08/1238520.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Tue, 08 Jul 2008 15:18:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/07/08/1238520.html</guid><description><![CDATA[摘要: 记得前几天，在csdn上看到有人问用SQL实现日历的方法。我在2006年也写过一个实现日历的方法，虽然能实现，但感觉那时候写的好土，o(∩_∩)o...&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/07/08/1238520.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1238520.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41311/" target="_blank">[新闻]微软每年向Apache捐10万美元支持开源软件</a>]]></description></item><item><title>如何修改数据库的服务器名称</title><link>http://www.cnblogs.com/studyzy/archive/2008/07/05/1236090.html</link><dc:creator>深蓝</dc:creator><author>深蓝</author><pubDate>Fri, 04 Jul 2008 19:29:00 GMT</pubDate><guid>http://www.cnblogs.com/studyzy/archive/2008/07/05/1236090.html</guid><description><![CDATA[<p>最近我要在SQL Server 2008上做数据库复制的实验，需要用到两台服务器，所以我需要同时开2个虚拟机（VPC），当然我不可能去单独安装2个SQL Server，安装过程太费时了，所以我是在一个虚拟机中安装了SQL2008，然后将该虚拟机文件复制了一个出来，然后还原成另外一个虚拟机，这样我就可以同时使用2个虚拟机来做复制的实验了。我先在虚拟机SQL2008RC0中安装了Windows2003操作系统，机器名为MS-ZY，然后安装SQL Server 2008，所以数据库的服务器名也就是MS-ZY。</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="251" alt="clip_image001" src="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001_thumb.jpg" width="377" border="0" /></a></p>
<p>接下来复制过去还原成虚拟机SQL2008RC02，当两个虚拟机都打开的情况下，如果都是MS-ZY的服务器名，那将无法识别，所以我将第二个虚拟机的机器名修改为MS-ZY2。这个我就可以使用SSMS通过这个名字来访问第二个数据库了。</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B6%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="249" alt="clip_image001[6]" src="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B6%5D_thumb.jpg" width="374" border="0" /></a></p>
<p>一起看起来都不错，已经将这两个服务器通过名字分开了，而且我们通过SSMS也的确看到了2个不同的服务器：</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B8%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="347" alt="clip_image001[8]" src="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B8%5D_thumb.jpg" width="376" border="0" /></a></p>
<p>但是在配置复制的时候却出了问题，我在MS-ZY上配置了数据库分发，配置成功，接下来想在MS-ZY2上配置订阅，可是却报错。于是我就试一下在MS-ZY2上配置分发，同样报错，报错内容为：</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B10%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="126" alt="clip_image001[10]" src="http://www.cnblogs.com/images/cnblogs_com/studyzy/WindowsLiveWriter/1bc57ce9c3b4_BFD/clip_image001%5B10%5D_thumb.jpg" width="464" border="0" /></a></p>
<p>显然，我虽然在操作系统中将机器名修改为MS-ZY2了，但是在数据库中仍然使用的MS-ZY作为服务器名。怎么办呢？唯一的办法就是修改数据库的服务器名。</p>
<p>请教了一下公司的同事，具体修改过程：</p>
<p>1.使用select @@ServerName可以看到当前数据库的服务器名，果然还是MS-ZY！</p>
<p>2.从Sys.SysServers表中可以看到当前的所有服务器名，也是MS-ZY！</p>
<p>3.使用 sp_dropserver 'MS-ZY' 将这个服务器名删除。</p>
<p>4.使用 sp_addserver 'MS-ZY2','LOCAL'将本地服务器重新添加到服务器表中，并且命名为MS-ZY2.</p>
<p>5.查询Sys.SysServers表，果然已经修改了。</p>
<p>6.重启数据库服务，修改完成，可以正常使用复制功能了 :)</p>
<p>其实操作还是十分的简单，但是由于修改服务器名这种情况实在太少见了，一般都是使用默认的，所以很多人都不知道如果修改，写下此文，希望对遇到和我相同问题的人有所帮助。</p>
<img src ="http://database.cnblogs.comaggbug/1236090.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>请教SQL Server登录失败的问题</title><link>http://www.cnblogs.com/perfectdesign/archive/2008/06/24/sql_login_problem.html</link><dc:creator>PerfectDesign</dc:creator><author>PerfectDesign</author><pubDate>Tue, 24 Jun 2008 01:59:00 GMT</pubDate><guid>http://www.cnblogs.com/perfectdesign/archive/2008/06/24/sql_login_problem.html</guid><description><![CDATA[这个问题困扰我好几天了，生产数据库上时常会出现 <font face="Verdana">用户 'xxxx' 登录失败。 [客户端: &lt;local machine&gt;]&nbsp; （来自事件管理器）<br />
但是<span style="color: red">服务器重启后就好了，数据库重启没有用</span>。数据库服务器基于的用户名密码的验证方式，非windows集成验证。<br />
没有人修改config文件，查毒也没有。<br />
各位有遇到这种情况的吗？<br />
附数据库版本：<br />
<font face="Verdana">Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)&nbsp;&nbsp; Oct 14 2005 00:33:37&nbsp;&nbsp; Copyright (c) 1988-2005 Microsoft Corporation&nbsp; Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) </font></font>
<img src ="http://database.cnblogs.comaggbug/1228656.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41309/" target="_blank">[新闻]谷歌网页索引数量突破1万亿个</a>]]></description></item><item><title>使用T-SQL配置日志传送</title><link>http://www.cnblogs.com/studyzy/archive/2008/06/23/1227855.html</link><dc:creator>深蓝</dc:creator><author>深蓝</author><pubDate>Sun, 22 Jun 2008 19:56:00 GMT</pubDate><guid>http://www.cnblogs.com/studyzy/archive/2008/06/23/1227855.html</guid><description><![CDATA[摘要: 日志传送（log shipping）主要基于SQL Server代理，使用定时作业来完成，另外在配置日志传送之前必须要创建共享文件夹，用于辅助服务器访问。这里我们假设有数据库logTrans1需要进行日志传送，共享文件夹为“C:\data”，在T-SQL中配置日志传送主要有以下几步操作： &nbsp;&nbsp;<a href='http://www.cnblogs.com/studyzy/archive/2008/06/23/1227855.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1227855.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41308/" target="_blank">[新闻]预装 Ubuntu 8.04 的 Dell 笔记本发售</a>]]></description></item><item><title>根据时间段计算有n年n月n天</title><link>http://www.cnblogs.com/wghao/archive/2008/06/22/1227758.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Sun, 22 Jun 2008 13:23:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/06/22/1227758.html</guid><description><![CDATA[摘要: 在csdn论坛上看到有一朋友问这样的问题，根据时间段计算有多少年，多少个月，多少天。记得以前有写过，今天重新写一次，顺便记录下来。&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/06/22/1227758.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1227758.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41307/" target="_blank">[新闻]金山:360的免费杀毒只能是短期行为</a>]]></description></item><item><title>总结下这段时间的工作经验</title><link>http://www.cnblogs.com/aspnetx/archive/2008/06/18/1225001.html</link><dc:creator>aspnetx</dc:creator><author>aspnetx</author><pubDate>Wed, 18 Jun 2008 13:47:00 GMT</pubDate><guid>http://www.cnblogs.com/aspnetx/archive/2008/06/18/1225001.html</guid><description><![CDATA[摘要: 最近做一个数据质量分析和主题分析的项目,里面用到了SQLServer2005的IS和AS部分,在这个过程中经历了很多惨痛的教训,多少吸取了一些经验,虽然更多的都是”低级失误”,不过还是希望能记下来,以后避免发生类似的问题:&nbsp;&nbsp;<a href='http://www.cnblogs.com/aspnetx/archive/2008/06/18/1225001.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1225001.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41306/" target="_blank">[新闻]江民科技回应杀毒软件免费说 没病不能乱吃药</a>]]></description></item><item><title>在Ubuntu 8.04 x86_64上安装Oracle 10g XE和Oracle Application Express(apex) 3.1.1</title><link>http://www.cnblogs.com/ericguo/archive/2008/06/14/oracle_xe_apex_on_ubuntu_804_64.html</link><dc:creator>丁丁</dc:creator><author>丁丁</author><pubDate>Sat, 14 Jun 2008 14:10:00 GMT</pubDate><guid>http://www.cnblogs.com/ericguo/archive/2008/06/14/oracle_xe_apex_on_ubuntu_804_64.html</guid><description><![CDATA[Oracle XE是Oracle数据库家族的Express快速版，完全免费，数据库的大小最高4GB（不包括系统空间占用的近1GB空间），内存限制在1G，CPU限制为1个，主要面向开发者和小型数据库应用。<br><br>Oracle Application Express是一种通过配置web页面参数即可开发Oracle数据库应用的工具，设计思想很独特，APEX的应用程序实际上只是数据表中的数据，可以任意导入导出，部署和开发都相当快速。<br><br>Ubuntu 8.04是现在最方便的Linux发行版，升级容易，错误也很少，Ubuntu 64位版本上一样可以跑32位版本的应用程序，比如Oracle Express Database，就只有32位的版本，但是一样可以安装运行，下面是安装Oracle XE 10.2和APEX 3.1.1方法：
<br>
1. 安装32位C语言库：
<br>
<code>
<strong>
sudo apt-get install libc6-i386<br>
</strong>
</code>
<br>
2. 下载相关安装文件，这里的这个oracle-xe-universal连接比OTN上的要新哦：
<br>
<code>
<strong>
wget -c http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb<br>
</strong>
</code>
<br>
3. 将Oracle XE和所需的异步IO库强制安装到64位平台上：
<br>
<code>
<strong>
dpkg -i --force-architecture libaio_0.3.104-1_i386.deb<br>
dpkg -i --force-architecture oracle-xe-universal_10.2.0.1-1.1_i386.deb<br>
</strong>
</code>
安装时会提示需要至少1024MB交换空间，不过如果你内存是2GB的话，是可以安全忽略的。
<br><br>
4. 配置Oracle XE：
<br>
<code>
<strong>
sudo /etc/init.d/oracle-xe configure<br>
</strong>
</code>
不要变动缺省值，我发现如果http端口选择非8080是不工作的，至此Oracle XE安装完毕，下面开始安装APEX 3.1.1。
<br><br>
5. 解压缩apex的安装包到/usr/lib/oracle/后安装OWA：
<br>
<code>
<strong>
cd /usr/lib/oracle/apex/owa/<br>
sqlplus "/as sysdba" @owainst.sql<br>
@?/rdbms/admin/utlrp;<br>
select owa_util.get_version from dual;<br>
exit<br>
</strong>
</code>
确认错误数为0， OWA版本号已经为10.1.2.0.6。
<br><br>
6. 正式开始安装APEX，安装运行时间比较长，可能需要10分钟左右：
<br>
<code>
<strong>
cd /usr/lib/oracle/apex/<br>
sqlplus "/as sysdba" @apexins.sql SYSAUX SYSAUX TEMP /i/<br>
sqlplus "/as sysdba" @apxchpwd(更换APEX管理员密码)<br>
exit<br>
</strong>
</code>
<br><br>
7. 下面这些步骤是升级XE自带APEX 2.1中的数据：
<br>
<code>
<strong>
cd /usr/lib/oracle/apex/<br>
sqlplus "/as sysdba"<br>
@apxldimg.sql /usr/lib/oracle (若报错，检查apex文件夹权限，用sudo chown oracle:dba apex更改权限)<br>
@apxxepwd.sql(更换APEX Internal管理员密码)<br>
exit<br>
</strong>
</code>
至此安装完毕，可以通过<a href="http://127.0.0.1:8080/apex/apex_admin">http://127.0.0.1:8080/apex/apex_admin</a>以Admin用户登陆开始使用APEX了。 <br>

有关APEX的进一步信息可以访问：<a href="http://apex.oracle.com/">http://apex.oracle.com/</a>
及<a href="http://www.oracle.com/technology/products/database/application_express/html/3.1_and_xe.html">http://www.oracle.com/technology/products/database/application_express/html/3.1_and_xe.html</a><img src ="http://database.cnblogs.comaggbug/1222024.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41305/" target="_blank">[新闻]WCG2008中国区总决赛打响</a>]]></description></item><item><title>模仿sp_executesql，制作一个自己的executesql脚本</title><link>http://www.cnblogs.com/wghao/archive/2008/06/12/1218703.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Thu, 12 Jun 2008 14:45:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/06/12/1218703.html</guid><description><![CDATA[摘要: 参照sp_executesql 的使用语法格式是：sp_executesql [ @stmt = ] stmt[ {, [@params=] N'@parameter_name data_type [ OUT | OUTPUT ][,...n]' } {, [ @param1 = ] 'value1' [ ,...n ] }]参考其中的一些参数的，返回的方法，这里制作一个MyExecuteSql的&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/06/12/1218703.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1218703.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41304/" target="_blank">[新闻]新型的编程语言:eC</a>]]></description></item><item><title>自动生成Insert数据的SQL脚本</title><link>http://www.cnblogs.com/wghao/archive/2008/06/08/1215953.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Sun, 08 Jun 2008 06:43:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/06/08/1215953.html</guid><description><![CDATA[摘要: 根据现有的表数据，生成相应的Insert数据语句。这里主要是考虑数据类型和标识列。&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/06/08/1215953.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1215953.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41303/" target="_blank">[新闻]免费的BitDefender能复制卡巴斯基的成功吗?</a>]]></description></item><item><title>多条件组合查询+分页 </title><link>http://www.cnblogs.com/eastjazz/archive/2008/06/05/1214254.html</link><dc:creator>德仔--脚踏实地 用心努力</dc:creator><author>德仔--脚踏实地 用心努力</author><pubDate>Thu, 05 Jun 2008 04:36:00 GMT</pubDate><guid>http://www.cnblogs.com/eastjazz/archive/2008/06/05/1214254.html</guid><description><![CDATA[比较麻烦，把他记录下来。<BR><BR>前台UI：<BR><BR><BR><IMG alt="" src="http://www.dezai.cn/blog/attachments/month_0806/2200864111659.jpg" border=0><BR><BR><BR>实现的类代码:<BR><BR>
<DIV class=UBBPanel>
<DIV class=UBBTitle><IMG style="MARGIN: 0px 2px -3px 0px" alt=程序代码 src="http://www.dezai.cn/blog/images/code.gif"> 程序代码</DIV>
<DIV class=UBBContent><BR><BR>///&nbsp;&lt;summary&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;多条件组合查询<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="suppliercode"&gt;供应商代码&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="materialcode"&gt;物料代码&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="beginDate"&gt;合同有效日期搜索开始日期&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="endDate"&gt;合同有效日期搜索结束日期&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="companyType"&gt;厂别&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="formState"&gt;状态&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="POCT"&gt;POCT&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="orderField"&gt;排序字段&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;IList&lt;Entity.CAS.PriceFormInfo&gt;&nbsp;MultiSearch(string&nbsp;suppliercode,&nbsp;string&nbsp;materialcode,&nbsp;string&nbsp;beginDate,&nbsp;string&nbsp;endDate,&nbsp;string&nbsp;companyType,&nbsp;string&nbsp;formState,&nbsp;string&nbsp;POCT,&nbsp;string&nbsp;orderField,&nbsp;int&nbsp;pagesize,&nbsp;int&nbsp;pageindex)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlParameter[]&nbsp;Parms&nbsp;=<BR>&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;new&nbsp;SqlParameter("@tblName",SqlDbType.VarChar,255),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@strGetFields",SqlDbType.VarChar,1000),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@fldName",SqlDbType.VarChar,255),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@PageSize",SqlDbType.Int,4),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@PageIndex",SqlDbType.Int,4),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@doCount",SqlDbType.Int,4),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@OrderType",SqlDbType.Int,4),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;SqlParameter("@strWhere",SqlDbType.VarChar,1500),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[0].Value&nbsp;=&nbsp;"UBS_CAS_PriceForm";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[1].Value&nbsp;=&nbsp;"*";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[2].Value&nbsp;=&nbsp;"FormID";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[3].Value&nbsp;=&nbsp;pagesize;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[4].Value&nbsp;=&nbsp;pageindex;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[5].Value&nbsp;=&nbsp;0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parms[6].Value&nbsp;=&nbsp;1;<BR><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;sql_select="1=1";<BR>&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;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!string.IsNullOrEmpty(suppliercode))<BR>&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;sql_select+="and&nbsp;suppliercode='"+suppliercode.ToString()+"'";<BR>&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;if(!string.IsNullOrEmpty(materialcode))<BR>&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;sql_select+="&nbsp;and&nbsp;materialcode='"+materialcode.ToString()+"'";<BR>&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;if&nbsp;(!string.IsNullOrEmpty(companyType.ToString()))<BR>&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;sql_select&nbsp;+=&nbsp;"&nbsp;and&nbsp;companytype="&nbsp;+&nbsp;companyType.ToString();<BR>&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;if(!string.IsNullOrEmpty(POCT))<BR>&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;sql_select+="&nbsp;and&nbsp;POCT='"+POCT.ToString()&nbsp;+"'";<BR>&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;if(!string.IsNullOrEmpty(formState.ToString()))<BR>&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;sql_select+="&nbsp;and&nbsp;formState="+formState.ToString()&nbsp;;<BR>&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;if(!string.IsNullOrEmpty(beginDate.ToString())&nbsp;&amp;&amp;&nbsp;!string.IsNullOrEmpty(endDate.ToString()))<BR>&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;sql_select+=&nbsp;"&nbsp;&nbsp;And&nbsp;[EffectiveDate]&nbsp;&gt;='"&nbsp;+&nbsp;beginDate.ToString()&nbsp;+&nbsp;"'&nbsp;And&nbsp;[EffectiveDate]&lt;=&nbsp;'"&nbsp;+&nbsp;endDate.ToString()&nbsp;+&nbsp;"&nbsp;'";<BR>&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;<BR>&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;Parms[7].Value&nbsp;=&nbsp;sql_select;<BR>&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Parms[7].Value&nbsp;=&nbsp;"1=1&nbsp;and&nbsp;suppliercode&nbsp;is&nbsp;null&nbsp;or&nbsp;suppliercode='"&nbsp;+&nbsp;suppliercode.ToString().Trim()&nbsp;+&nbsp;"'&nbsp;and&nbsp;materialcode&nbsp;is&nbsp;null&nbsp;or&nbsp;materialcode='"&nbsp;+&nbsp;materialcode.ToString()&nbsp;+&nbsp;"'&nbsp;AND&nbsp;companytype&nbsp;is&nbsp;null&nbsp;or&nbsp;CompanyType="&nbsp;+&nbsp;companyType.ToString()&nbsp;+&nbsp;"&nbsp;AND&nbsp;POCT&nbsp;is&nbsp;null&nbsp;or&nbsp;POCT='"&nbsp;+&nbsp;POCT.ToString()&nbsp;+&nbsp;"'&nbsp;AND&nbsp;EffectiveDate&nbsp;between&nbsp;&nbsp;&nbsp;'"&nbsp;+&nbsp;beginDate.ToString()&nbsp;+&nbsp;"'&nbsp;AND&nbsp;&nbsp;'"&nbsp;+&nbsp;endDate.ToString()&nbsp;+&nbsp;"'";<BR><BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IList&lt;Entity.CAS.PriceFormInfo&gt;&nbsp;FormList&nbsp;=&nbsp;new&nbsp;List&lt;Entity.CAS.PriceFormInfo&gt;();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;(SqlDataReader&nbsp;dr&nbsp;=&nbsp;SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile,&nbsp;CommandType.StoredProcedure,&nbsp;"UBS_System_Page",&nbsp;Parms))<BR>&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;while&nbsp;(dr.Read())<BR>&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;Entity.CAS.PriceFormInfo&nbsp;priceForm&nbsp;=&nbsp;new&nbsp;Entity.CAS.PriceFormInfo(Convert.ToInt32(dr["formID"]),&nbsp;dr["materialCode"].ToString().Trim(),&nbsp;dr["materialDesc"].ToString().Trim(),&nbsp;dr["supplierCode"].ToString().Trim(),&nbsp;dr["supplierName"].ToString().Trim(),&nbsp;dr["payment"].ToString().Trim(),&nbsp;Convert.ToDouble(dr["tax"]),&nbsp;dr["currencyType"].ToString().Trim(),&nbsp;Convert.ToDateTime(dr["effectiveDate"]),&nbsp;dr["processMarDealWay"].ToString().Trim(),&nbsp;dr["productMarDealWay"].ToString().Trim(),&nbsp;dr["guaranDealWay"].ToString().Trim(),&nbsp;dr["idelDealWay"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["companyType"]),&nbsp;dr["purchaser"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["purchaserUID"]),&nbsp;dr["auditor"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["auditorUID"]),&nbsp;dr["description"].ToString().Trim(),&nbsp;Convert.ToDateTime(dr["pubDate"]),&nbsp;Convert.ToInt32(dr["formState"]),&nbsp;dr["rejectReason"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["itemCostModelID"]),&nbsp;Convert.ToDouble(dr["price"]),&nbsp;Convert.ToDateTime(dr["checkedDate"]),&nbsp;Convert.ToDouble(dr["profits"]),&nbsp;Convert.ToDouble(dr["totalTaxPercent"]),&nbsp;Convert.ToDouble(dr["processMarTax"]),&nbsp;Convert.ToDouble(dr["productMarTax"]),&nbsp;Convert.ToDouble(dr["guaranTax"]),&nbsp;Convert.ToInt32(dr["IsCurrentPrice"]),&nbsp;Convert.ToInt32(dr["FormType"]),&nbsp;dr["POCT"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["MaterialClass"]),&nbsp;dr["Checker"].ToString().Trim(),&nbsp;Convert.ToInt32(dr["CheckerUID"]),&nbsp;Convert.ToInt32(dr["IsBatch"]),&nbsp;dr["AttributePath"].ToString().Trim(),&nbsp;dr["BatchNo"].ToString().Trim());<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormList.Add(priceForm);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&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;return&nbsp;FormList;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR><BR><BR></DIV></DIV><BR><BR><BR><BR>存储过程实现代码：（这个可以通用,在SQL或Access都可以用的)<BR><BR><BR>
<DIV class=UBBPanel>
<DIV class=UBBTitle><IMG style="MARGIN: 0px 2px -3px 0px" alt=程序代码 src="http://www.dezai.cn/blog/images/code.gif"> 程序代码</DIV>
<DIV class=UBBContent><BR><BR>--&nbsp;=============================================<BR>--&nbsp;Author:Dezai&nbsp;&nbsp;www.Dezai.cn<BR>--&nbsp;Create&nbsp;date:2008-06-04&nbsp;11:19:52<BR>--&nbsp;Description:查询分页集合(通用存储过程)<BR>--&nbsp;=============================================<BR>Create&nbsp;PROCEDURE&nbsp;UP_GetCollectionPage<BR>&nbsp;&nbsp;&nbsp;&nbsp;(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@tblName&nbsp;VARCHAR(255),&nbsp;--&nbsp;表名<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@strGetFields&nbsp;VARCHAR(1000)&nbsp;=&nbsp;'*',&nbsp;--&nbsp;需要返回的列<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@fldName&nbsp;VARCHAR(255)='',&nbsp;--&nbsp;排序的字段名<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;INT&nbsp;=&nbsp;10,&nbsp;--&nbsp;页尺寸<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageIndex&nbsp;INT&nbsp;=&nbsp;1,&nbsp;--&nbsp;页码<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@doCount&nbsp;BIT&nbsp;=&nbsp;0,&nbsp;--&nbsp;返回记录总数,&nbsp;非&nbsp;0&nbsp;值则返回<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@OrderType&nbsp;BIT&nbsp;=&nbsp;0,&nbsp;--&nbsp;设置排序类型,&nbsp;非&nbsp;0&nbsp;值则降序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@strWhere&nbsp;VARCHAR(1500)&nbsp;=&nbsp;''&nbsp;--&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;Where)<BR>&nbsp;&nbsp;&nbsp;&nbsp;)<BR>AS<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;NOCOUNT&nbsp;ON<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DECLARE&nbsp;@strSQL&nbsp;VARCHAR(5000)&nbsp;--&nbsp;主语句<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DECLARE&nbsp;@strTmp&nbsp;VARCHAR(110)&nbsp;--&nbsp;临时变量<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DECLARE&nbsp;@strOrder&nbsp;VARCHAR(400)&nbsp;--&nbsp;排序类型<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF(@doCount&nbsp;!=&nbsp;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;@strWhere&nbsp;!=''<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;COUNT(1)&nbsp;AS&nbsp;Total&nbsp;FROM&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;']&nbsp;Where&nbsp;'+@strWhere<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;COUNT(1)&nbsp;AS&nbsp;Total&nbsp;FROM&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;']'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--以上代码的意思是如果@doCount传递过来的不是0，就执行总数统计。以下的所有代码都是@doCount为0的情况<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;@OrderType&nbsp;!=&nbsp;0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<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;SET&nbsp;@strTmp&nbsp;=&nbsp;'&lt;(Select&nbsp;MIN'<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;SET&nbsp;@strOrder&nbsp;=&nbsp;'&nbsp;orDER&nbsp;BY&nbsp;['&nbsp;+&nbsp;@fldName&nbsp;+']&nbsp;DESC'<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;--如果@OrderType不是0，就执行降序，这句很重要<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<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;SET&nbsp;@strTmp&nbsp;=&nbsp;'&gt;(Select&nbsp;MAX'<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;SET&nbsp;@strOrder&nbsp;=&nbsp;'&nbsp;orDER&nbsp;BY&nbsp;['&nbsp;+&nbsp;@fldName&nbsp;+']&nbsp;ASC'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;@PageIndex&nbsp;=&nbsp;1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<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;IF&nbsp;@strWhere&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;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;'+@strGetFields+&nbsp;'&nbsp;FROM&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;']&nbsp;Where&nbsp;'&nbsp;+&nbsp;@strWhere&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;@strOrder<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;ELSE<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;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;'+@strGetFields+&nbsp;'&nbsp;FROM&nbsp;['+&nbsp;@tblName&nbsp;+&nbsp;']&nbsp;'+&nbsp;@strOrder<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;--如果是第一页就执行以上代码，这样会加快执行速度<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<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;--以下代码赋予了@strSQL以真正执行的SQL代码<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;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;'+@strGetFields+&nbsp;'&nbsp;FROM&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;@tblName&nbsp;+&nbsp;']&nbsp;Where&nbsp;['&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;']'&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;'(['+&nbsp;@fldName&nbsp;+&nbsp;'])&nbsp;FROM&nbsp;(Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;'&nbsp;['+&nbsp;@fldName&nbsp;+&nbsp;']&nbsp;FROM&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;']'&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;')&nbsp;AS&nbsp;tblTmp)'+&nbsp;@strOrder<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;IF&nbsp;@strWhere&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;SET&nbsp;@strSQL&nbsp;=&nbsp;'Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;'+@strGetFields+&nbsp;'&nbsp;FROM&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;@tblName&nbsp;+&nbsp;']&nbsp;Where&nbsp;['&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;']'&nbsp;+&nbsp;@strTmp&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;@fldName&nbsp;+&nbsp;'])&nbsp;FROM&nbsp;(Select&nbsp;TOP&nbsp;'&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&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;@fldName&nbsp;+&nbsp;']&nbsp;FROM&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;']&nbsp;Where&nbsp;'&nbsp;+&nbsp;@strWhere&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;@strOrder&nbsp;+&nbsp;')&nbsp;AS&nbsp;tblTmp)&nbsp;AND&nbsp;'&nbsp;+&nbsp;@strWhere&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;@strOrder<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXEC&nbsp;(@strSQL)<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;NOCOUNT&nbsp;OFF<BR>GO<BR><BR><BR></DIV></DIV><BR><BR><BR>记录一下，与大家分享，欢迎纠错。 <IMG style="MARGIN: 0px 0px -2px" alt="" src="http://www.dezai.cn/blog/images/smilies/icon_biggrin.gif" border=0><BR><BR>来源:http://www.dezai.cn/blog/article.asp?id=199<BR><img src ="http://database.cnblogs.comaggbug/1214254.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41301/" target="_blank">[新闻]DNS漏洞攻击代码已经公布 危险迫在眉睫</a>]]></description></item><item><title>SQL注入攻击防不胜防</title><link>http://www.cnblogs.com/xiucai/archive/2008/06/04/1213242.html</link><dc:creator>秀才</dc:creator><author>秀才</author><pubDate>Wed, 04 Jun 2008 01:28:00 GMT</pubDate><guid>http://www.cnblogs.com/xiucai/archive/2008/06/04/1213242.html</guid><description><![CDATA[摘要: SQL注入攻击防不胜防&nbsp;&nbsp;<a href='http://www.cnblogs.com/xiucai/archive/2008/06/04/1213242.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1213242.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41300/" target="_blank">[新闻]十几万元天价笔记本电脑</a>]]></description></item><item><title>根据年，自动生成日期</title><link>http://www.cnblogs.com/wghao/archive/2008/06/02/1212518.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Mon, 02 Jun 2008 15:57:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/06/02/1212518.html</guid><description><![CDATA[摘要: 输入参数@year int,返回当年的所有日期列表。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/06/02/1212518.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1212518.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41299/" target="_blank">[新闻]英特尔:四核移动处理器八月推出</a>]]></description></item><item><title>X进制与10进制之间的转换</title><link>http://www.cnblogs.com/wghao/archive/2008/05/29/1209590.html</link><dc:creator>OK_008</dc:creator><author>OK_008</author><pubDate>Wed, 28 May 2008 17:33:00 GMT</pubDate><guid>http://www.cnblogs.com/wghao/archive/2008/05/29/1209590.html</guid><description><![CDATA[摘要: 昨天老大问X进制和10进制,x进制与x进制之间如何转换。在网上找到很多有关16和10进制之间转换的例子，参考其中的算法，写X进制与10进制之间转换的SQL语句。&nbsp;&nbsp;<a href='http://www.cnblogs.com/wghao/archive/2008/05/29/1209590.html'>阅读全文</a><img src ="http://database.cnblogs.comaggbug/1209590.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41297/" target="_blank">[新闻]杨致远：孤独的守护人</a>]]></description></item><item><title>还是关于乱建ID导致效率低下</title><link>http://www.cnblogs.com/perfectdesign/archive/2008/05/28/identityid.html</link><dc:creator>PerfectDesign</dc:creator><author>PerfectDesign</author><pubDate>Wed, 28 May 2008 13:58:00 GMT</pubDate><guid>http://www.cnblogs.com/perfectdesign/archive/2008/05/28/identityid.html</guid><description><![CDATA[今天改的一个存储过程发现改了还是效率低下，仔细看了看，原来那个是一个IP日志表，因为没有适当的索引，导致全表的聚集扫描，速度非常慢。仔细分析了一下：<br />
IPLog：<br />
一个自增ID，一个访问时间，一个访问次数，一个IP，4个字段，80万记录。<br />
索引：一个聚集索引在自增ID上。<br />
执行以下语句：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">statistics</span><span style="color: #000000">&nbsp;io&nbsp;</span><span style="color: #0000ff">on</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">statistics</span><span style="color: #000000">&nbsp;time&nbsp;</span><span style="color: #0000ff">on</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;IPLogInsert&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">255.255.255.255</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;&nbsp;</span></div>
结果：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />表&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">IPLog</span><span style="color: #ff0000">'</span><span style="color: #000000">。扫描计数&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">，逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">3737</span><span style="color: #000000">&nbsp;次，物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">172</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">514</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />表&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">IPLog</span><span style="color: #ff0000">'</span><span style="color: #000000">。扫描计数&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">，逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">&nbsp;次，物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">252</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">172</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">771</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;分析和编译时间:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。</span></div>
<br />
<br />
优化：<br />
将自增ID去掉，将聚集索引建在accesstime上<br />
执行同样语句结果如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">SQL&nbsp;Server&nbsp;分析和编译时间:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">16</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">30</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />表&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">IPLog</span><span style="color: #ff0000">'</span><span style="color: #000000">。扫描计数&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">，逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">4</span><span style="color: #000000">&nbsp;次，物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">24</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />表&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">IPLog</span><span style="color: #ff0000">'</span><span style="color: #000000">。扫描计数&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">，逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">&nbsp;次，物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;逻辑读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;物理读取&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次，lob&nbsp;预读&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;次。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">6</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;执行时间:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">16</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">61</span><span style="color: #000000">&nbsp;毫秒。<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />SQL&nbsp;Server&nbsp;分析和编译时间:&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;CPU&nbsp;时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">&nbsp;毫秒，占用时间&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;毫秒。</span></div>
<br />
<br />
很鲜明的对比，这就是我一直强调的日志类型表不要建ID的典型范例。<br />
<br />
附<font face="Verdana">[IPLogInsert]</font>详细：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">&nbsp;=============================================&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;Author:&nbsp;&nbsp;Xiangxiang&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;Create&nbsp;date:2008-5-29&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;Description:&nbsp;Insert&nbsp;a&nbsp;IP&nbsp;log&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;=============================================&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">IPLogInsert</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@IP</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">15</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">255.255.255.255</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">BEGIN</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;NOCOUNT&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@currId</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@today</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">datetime</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">SET&nbsp;@currID&nbsp;=&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@today</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">getdate</span><span style="color: #000000">()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">SELECT&nbsp;@currId&nbsp;=&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;IPLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">where&nbsp;convert(char(10),&nbsp;@today,101)&nbsp;=&nbsp;convert(char(10),AccessTime,&nbsp;101)&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;@IP&nbsp;=&nbsp;IP&nbsp;&nbsp;if(&nbsp;@currID&nbsp;=&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;insert&nbsp;into&nbsp;IPLog&nbsp;(AccessTime,IP,[Count])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;values&nbsp;(@today,&nbsp;@IP,&nbsp;1)&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;update&nbsp;IPLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;SET&nbsp;[count]=[count]+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;WHERE&nbsp;convert(char(10),&nbsp;@today,101)&nbsp;=&nbsp;convert(char(10),AccessTime,&nbsp;101)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;@IP&nbsp;=&nbsp;IP&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />--</span><span style="color: #008080">&nbsp;END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;IPlog&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Count</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Count</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;Ip&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@IP</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #808080">and</span><span style="color: #000000">&nbsp;AccessTime&nbsp;</span><span style="color: #808080">between</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">dateadd</span><span style="color: #000000">(</span><span style="color: #ff00ff">day</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="color: #ff00ff">datediff</span><span style="color: #000000">(</span><span style="color: #ff00ff">day</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">,</span><span style="color: #008000">@today</span><span style="color: #808080">-</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">))&nbsp;</span><span style="color: #808080">and</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #ff00ff">dateadd</span><span style="color: #000000">(</span><span style="color: #ff00ff">day</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="color: #ff00ff">datediff</span><span style="color: #000000">(</span><span style="color: #ff00ff">day</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">,</span><span style="color: #008000">@today</span><span style="color: #000000">))&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #008000">@@rowcount</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">)&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;IPLog&nbsp;(AccessTime,IP,</span><span style="color: #ff0000">[</span><span style="color: #ff0000">Count</span><span style="color: #ff0000">]</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">values</span><span style="color: #000000">&nbsp;(</span><span style="color: #008000">@today</span><span style="color: #000000">,</span><span style="color: #008000">@IP</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span></div>
<img src ="http://database.cnblogs.comaggbug/1209506.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41298/" target="_blank">[新闻]SourceForge可正常访问</a>]]></description></item></channel></rss>