??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩a在线看,中文字幕视频在线,国产99久久久久久免费看农村 http://www.aygfsteel.com/wangxinsh55/category/9196.htmlzh-cnMon, 02 Jul 2012 11:14:52 GMTMon, 02 Jul 2012 11:14:52 GMT60数据分lƈ只取每组前N?/title><link>http://www.aygfsteel.com/wangxinsh55/archive/2012/06/07/380231.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 07 Jun 2012 07:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/wangxinsh55/archive/2012/06/07/380231.html</guid><wfw:comment>http://www.aygfsteel.com/wangxinsh55/comments/380231.html</wfw:comment><comments>http://www.aygfsteel.com/wangxinsh55/archive/2012/06/07/380231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wangxinsh55/comments/commentRss/380231.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wangxinsh55/services/trackbacks/380231.html</trackback:ping><description><![CDATA[<div> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体;color:black;">我们l常?x)有q样的需求,x照地区来分别取出每个地区排名?的那些记录。本文ȝ了几U方法,希望大家补充?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体;color:black;">首先Q创建测试用的表和数据,如下Q?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">create</span> <span style="font-size:12.0pt; font-family:宋体;color:blue;">table</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> test</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">(</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">areaid </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">int</span><span style="font-size:12.0pt; font-family:宋体;color:black;">,</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">score </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">int</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">)</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">insert</span> <span style="font-size:12.0pt; font-family:宋体;color:blue;">into</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> test </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">0</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt; font-family:宋体;color:maroon;">10</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">0</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">20</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">0</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">30</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">0</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">40</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">0</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">50</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">10</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">20</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">30</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">40</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">50</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">2</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">10</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">2</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">20</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">2</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">30</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">2</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">40</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">union</span> <span style="font-size:12.0pt;font-family:宋体;color:gray;">all</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">2</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;">,</span><strong><span style="font-size:12.0pt;font-family:宋体; color:maroon;">50</span></strong></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">go</span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体;color:black;">W一U方法适用于sql2000?005Q其代码如下Q?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">select</span> <span style="font-size:12.0pt; font-family:宋体;color:gray;">*</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">from</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> test a</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">where</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> checksum(</span><span style="font-size:12.0pt;font-family: 宋体;color:gray;">*</span><span style="font-size:12.0pt;font-family:宋体; color:black;">) </span><span style="font-size: 12.0pt;font-family:宋体;color:gray;">in</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> (</span><span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">top</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">3</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;"> checksum(</span><span style="font-size:12.0pt;font-family:宋体; color:gray;">*</span><span style="font-size: 12.0pt;font-family:宋体;color:black;">) </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">from</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> test b </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">where</span><span style="font-size:12.0pt; font-family:宋体;color:black;"> a.areaid</span><span style="font-size:12.0pt;font-family:宋体;color:gray;">=</span><span style="font-size:12.0pt;font-family:宋体; color:black;">b.areaid </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">order</span> <span style="font-size:12.0pt;font-family:宋体; color:blue;">by</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> score </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">desc</span><span style="font-size:12.0pt;font-family:宋体; color:black;">)</span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体;color:black;">W二U方法是利用sql2005的函数ROW_NUMBERQ其代码如下Q?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">WITH</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> test1 </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">AS</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">(</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">    </span><span style="font-size:12.0pt;font-family:宋体; color:blue;">SELECT</span> <span style="font-size:12.0pt; font-family:宋体;color:gray;">*</span><span style="font-size:12.0pt;font-family:宋体; color:black;">,</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">    ROW_NUMBER() </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">OVER</span><span style="font-size:12.0pt; font-family:宋体;color:black;"> (PARTITION </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">BY</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> areaid </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">ORDER</span> <span style="font-size:12.0pt;font-family:宋体; color:blue;">BY</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> score </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">desc</span><span style="font-size:12.0pt;font-family:宋体; color:black;">) </span><span style="font-size: 12.0pt;font-family:宋体;color:blue;">AS</span> <span style="font-size: 12.0pt;font-family:宋体;color:red;">'RowNumber'</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">    </span><span style="font-size:12.0pt;font-family:宋体; color:blue;">FROM</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> test </span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">) </span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">SELECT</span> <span style="font-size:12.0pt; font-family:宋体;color:gray;">*</span> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">FROM</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> test1 </span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">WHERE</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> RowNumber </span><span style="font-size:12.0pt;font-family: 宋体;color:gray;">BETWEEN</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">1</span></strong> <span style="font-size:12.0pt;font-family:宋体; color:gray;">AND</span> <strong><span style="font-size:12.0pt;font-family:宋体;color:maroon;">3</span></strong><span style="font-size:12.0pt;font-family:宋体; color:black;">;</span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体;color:black;">W三U方法是利用sql2005?span>cross apply</span>来实玎ͼ其代码如下:(x)</span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">select</span><span style="font-size:12.0pt;font-family:宋体;color:black;"> </span><span style="font-size:12.0pt;font-family:宋体; color:blue;">distinct</span><span style="font-size:12.0pt;font-family:宋体;color:black;"> t.</span><span style="font-size:12.0pt; font-family:宋体;color:gray;">*</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">from</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> test a</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">cross</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> apply</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:black;">(</span><span style="font-size: 12.0pt;font-family:宋体;color:blue;">select</span> <span style="font-size: 12.0pt;font-family:宋体;color:blue;">top</span> <strong><span style="font-size: 12.0pt;font-family:宋体;color:maroon;">3</span></strong><span style="font-size:12.0pt;font-family:宋体;color:black;"> areaid,score </span><span style="font-size:12.0pt;font-family:宋体; color:blue;">from</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> test</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:宋体; color:blue;">where</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> a.areaid</span><span style="font-size:12.0pt;font-family:宋体;color:gray;">=</span><span style="font-size:12.0pt;font-family:宋体; color:black;">areaid </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">order</span> <span style="font-size:12.0pt;font-family:宋体; color:blue;">by</span><span style="font-size: 12.0pt;font-family:宋体;color:black;"> score </span><span style="font-size:12.0pt;font-family:宋体;color:blue;">desc</span><span style="font-size:12.0pt;font-family:宋体; color:black;">) </span><span style="font-size: 12.0pt;font-family:宋体;color:blue;">as</span><span style="font-size:12.0pt;font-family:宋体; color:black;"> T</span></p> </div><img src ="http://www.aygfsteel.com/wangxinsh55/aggbug/380231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wangxinsh55/" target="_blank">SIMONE</a> 2012-06-07 15:12 <a href="http://www.aygfsteel.com/wangxinsh55/archive/2012/06/07/380231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>异地SQL Server数据库查询及(qing)备䆾{操?/title><link>http://www.aygfsteel.com/wangxinsh55/archive/2012/03/02/371146.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 02 Mar 2012 09:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/wangxinsh55/archive/2012/03/02/371146.html</guid><wfw:comment>http://www.aygfsteel.com/wangxinsh55/comments/371146.html</wfw:comment><comments>http://www.aygfsteel.com/wangxinsh55/archive/2012/03/02/371146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wangxinsh55/comments/commentRss/371146.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wangxinsh55/services/trackbacks/371146.html</trackback:ping><description><![CDATA[<div>--l本机添加链接服务器Q首先需要在 数据库客L(fng)创徏数据库别?#8220;testDatabase”<br />exec sp_addlinkedserver @server='testDatabase',@srvproduct='SQL Server';<br />--l本地创建登录链?br />exec sp_addlinkedsrvlogin @rmtsrvname=testDatabase, @useself=false, @rmtuser=username, @rmtpassword=password;<br />--查看所有已链接的服务器<br />exec sp_linkedservers<br /><br />--试是否创徏q程链接成功<br />declare @str varchar(100);<br />exec @str=sp_testlinkedserver testDatabase;<br />print @str;<br /><br />--索远E数据库?br />select top 10 * from testDatabase.MobileLib.dbo.wap_news<br /><br />--删除已链接服务器<br /><div>EXEC sp_droplinkedsrvlogin mobileIRDDB,NULL<br /><br />--删除本地d服务?br />exec sp_dropserver mobileIRDDB</div></div><img src ="http://www.aygfsteel.com/wangxinsh55/aggbug/371146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wangxinsh55/" target="_blank">SIMONE</a> 2012-03-02 17:13 <a href="http://www.aygfsteel.com/wangxinsh55/archive/2012/03/02/371146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL大表转ؓ(f)分区表实?/title><link>http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348636.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Wed, 20 Apr 2011 08:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348636.html</guid><wfw:comment>http://www.aygfsteel.com/wangxinsh55/comments/348636.html</wfw:comment><comments>http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348636.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wangxinsh55/comments/commentRss/348636.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wangxinsh55/services/trackbacks/348636.html</trackback:ping><description><![CDATA[     摘要: -- q行演示操作? 先备? 以便可以在演C完成后, 恢复到原始状?USE master -- 备䆾 BACKUP DATABASE AdventureWorks     TO DISK = 'AdventureWorks.bak' ...  <a href='http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348636.html'>阅读全文</a><img src ="http://www.aygfsteel.com/wangxinsh55/aggbug/348636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wangxinsh55/" target="_blank">SIMONE</a> 2011-04-20 16:03 <a href="http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sql Server性能优化——PartitionQ创建分区)http://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348634.htmlSIMONESIMONEWed, 20 Apr 2011 07:54:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348634.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/348634.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2011/04/20/348634.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/348634.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/348634.html

http://www.cnblogs.com/smjack/archive/2010/02/23/1671943.html

和压~(CompressionQ相比,数据库分区(PartitionQ的操作更ؓ(f)复杂J琐。而且与Compression一ơ操作,ln保持不同Q分区是一w要长期维护周期变更的操作?/p>

分区的意义在于将大数据从物理上切割ؓ(f)几个怺独立的小部分Q从而在查询时只取出其中一个或几个分区Q减媄响的数据Q另外对于置于不同文件组的分区,q行查询的性能也要高于Ҏ(gu)个表的查询性能?/p>

事实上,在SQL Server 2005中就已经包含了分区功能,甚至?005之前Q还存在一个叫?#8220;Partitioned Views”的功能,能通过同L(fng)构的表Union在一个View中,实现cM现在分区表的效果。而在SQL Server 2008中,分区功能得到了显著加强,使得我们不仅能够对表和烦引做分区Q?a target="_blank">而且允许对分Z锁,而不是之前的全表上锁?/p>

指定分区?/h1>

和Compression一P在SQL Server 2008中也提供了分区的向导界面。在企业理器中Q需要分区的表上右键选择Storage-》Create Partition:

SqlServer性能优化——PartitionQ创建分区)

 

q里?x)列表所有的字段Q包括字D늱型、长度、精度及(qing)数位数的信息,可以选择其中的Q意一一列作为分区列QPatitioning ColumnQ,不仅仅是数字或者日期类型,即是字W串cd的列Q也可以按照字母序q行分区。而以下类型的列不可用于分区:(x)text、ntext、image、xml、timestamp、varchar(max)、nvarchar(max)、varbinary(max)、别名、hierarchyid、空间烦引或 CLR 用户定义的数据类?/strong>。此外,如果使用计算列作为分区列Q则必须该?strong>设ؓ(f)持久化列QPersisitQ?/p>

在列表下方,提供了两个选项Q?/p>

  1. 分配到可用分Q?
    q要求在同一数据库下有另一张已分好区的表,同时该表的分区列和当前选中的列的类?strong>完全一?/strong>?
    q样的好处是当两张表在查询中有关联时Qƈ且其兌列就是分区列Ӟ使用同样的分区策略会(x)更有效率?
  2. 非唯一索引和唯一索引的存储空间调整ؓ(f)与烦引分区列一?/strong>Q?
    q样?x)将表中的所有烦引也一同分区,实现“寚w”。这是一个重要而麻烦的选项Q具体需求请参阅MSDNQ?a target="_blank">已分区烦引的Ҏ(gu)指导原则Q?
    q样的好处是表和索引的分Z_(d)一斚w查询时利用烦引更为高效,而且在下文提到的UdUd分区也会(x)更ؓ(f)高效?

注意Q这里徏?strong>使用聚集索引列作为分区列。一斚w索引l构本n应与查询相养I那么分区列与索引一致会(x)保证查询的最大效率;另一斚wQ保证烦引对齐而且是聚集烦引对齐是保证分区的移入移出操作顺畅的前提Q否则可能会(x)出现无法UdUd的情况,而分区的UdUd又是理大数据的重要{略—?strong>滑动H口QSlideWindowQ策略的基础操作。另外,如果要进行烦引对齐,需要所有烦引和表的压羃模式一?/strong>?/p>

分区函数与分区方?/h1>

选好分区列后Q如果没有应?#8220;分配到可用分”选项Q接下来则会(x)q入选择\创徏分区函数以及(qing)分区Ҏ(gu)的界面。其中分区函C(x)指定分区边界Q而分区方案则规划了每个分区所存储的文件组?/p>

向导操作界面如下Q?/p>

SqlServer性能优化——PartitionQ创建分区)

其中Left boundary说明每个分区的边界D包含在边界值左侧的分区中,也就是每个分区内的数据约束是<=指定的边界?/strong>Q相应的QRight boundary则说明每个分区的边界D包含在边界值右侧的分区中,每个分区内的数据U束?strong><指定的边界?/strong>?/p>

在下方的列表中,列出了当前分区方案下现有的分区。其中文件组QF(tun)ilegroupQ指定了每个分区存放的位|,如果分区放|于位于不同盘中的不同文gl中Q由于不同磁盘的d互不q扰Q这提高分q行处理的效率。一般情况下Q将所有分区放|在同一个文件组是比较稳妥的做法。关于文件组的展开阅读可以参阅Q?a target="_blank">SQL Server Filegroups?/p>

注意Q在q里最后一个分区是没有指定边界的,用于保存所?gt;(Left Boundary)?gt;=(Right boundary)最后一个分界的数据?/p>

如果选择旉cd的字D作为分区列Q可以通过Set按钮实现按条件分l:(x)

SqlServer性能优化——PartitionQ创建分区)

q样可以很方便得通过讄h旉表按照指定旉D自动分区,但之后依焉要手动指定每个分区的文gl?/p>

制定好分区方案之后可以通过Estimate sotrage预估每个分区的行数、空间占用情况,不过除非需要以占用I间或行数来规划你的分区{略Q一?strong>不徏议在q里q行预估Q因为如果对I来说Q预估的l果当然都是0Q而如果表中已l包含大量数据,预估则会(x)p比较长的旉?/p>

创徏分区

通过以上讄Q分区已l基本完毕,在向导的最后,可以选择是创本还是立x行分区操作?/p>

我们可以查看在不同情况下创徏分区的脚本的情况Q?/p>

1.在表没有索引的情况下Q?/strong>

BEGIN TRANSACTION
CREATE PARTITION FUNCTION [TestFunction](datetime) AS RANGE LEFT FOR VALUES (N'2010-01-01T00:00:00', N'2010-02-01T00:00:00', 
N'2010-03-01T00:00:00', N'2010-04-01T00:00:00', N'2010-05-01T00:00:00', N'2010-06-01T00:00:00') CREATE PARTITION SCHEME [TestScheme] AS PARTITION [TestFunction] TO ([PRIMARY], [PRIMARY], [PRIMARY],
[PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY]) CREATE CLUSTERED INDEX [ClusteredIndex_on_TestScheme_634025264502439124] ON [dbo].[Account] ( [birthday] )WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [TestScheme]([birthday]) DROP INDEX [ClusteredIndex_on_TestScheme_634025264502439124] ON [dbo].[Account] WITH ( ONLINE = OFF ) COMMIT TRANSACTION

q里先创建Partition Function以及(qing)Partition SchemeQ之后在分区列上创徏聚集索引q按照分区方案分区,最后删除了q一索引?lt;/>

2.在表有烦引的情况下:(x)

如果原先没有聚集索引Q?/p>

CREATE CLUSTERED INDEX [ClusteredIndex_on_TestScheme_634025229911990663] ON [dbo].[Account]
(
[birthday]
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [TestScheme]([birthday])
DROP INDEX [ClusteredIndex_on_TestScheme_634025229911990663] ON [dbo].[Account] WITH ( ONLINE = OFF )

q和没有索引的情况一P如果表原先存在聚集烦引,则脚本变为:(x)

CREATE CLUSTERED INDEX [IX_id] ON [dbo].[Account]
(
[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON, 
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [TestScheme]([birthday])

可以看到原有的聚集烦引(IX_idQ在分区Ҏ(gu)上被重徏了?/p>

如果选择?#8220;寚w索引”选项Q则?x)对所有烦引都应用分区Q?/p>

CREATE CLUSTERED INDEX [IX_id] ON [dbo].[Account]
(
[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON, 
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [TestScheme]([birthday]) CREATE NONCLUSTERED INDEX [UIX_birthday] ON [dbo].[Account] ( [birthday] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [TestScheme]([birthday]) CREATE NONCLUSTERED INDEX [UIX_name] ON [dbo].[Account] ( [name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

q里不仅对聚集烦引IX_idq行了分区,也对非聚集烦引UIX_name和UIX_birthdayq行了分区?/p>

注意事项

  1. 对一张表分好区后不可以进行再ơ分区,同时?strong>没有直接取消表分区的Ҏ(gu)?
  2. 如果要查看已分区表的分区状态以?qing)每个分Z的行数和占用I间Q可以通过Storage-》Management Compression查看。同时可以在q里为每个分区指定压~方式?
  3. 如果分区表烦引没有对?/strong>Q则不可以对该表q行切入切出QSwitch in/outQ操作,同样也不能执行滑动窗口操?/strong>?
  4. 分区实际上是在每个分都添加了U束Q相应的插入操作的性能也会(x)受到影响?
  5. 即ɘq行了分区,如果查询的条件字D和分区列ƈ没有兌Q性能也未必会(x)得到提升?

附:(x)对分区ƈ行查询的说明

׃我在实际操作中主要考虑q行查询斚w的效率,所以文章里只是略略带过Q但评论中有人提刎ͼ所以摘录整理一些资料在下面Q?/p>

  1. q行查询肯定需要多核支持,单核下ƈ行是不可能的?
  2. ?005中,如果有两个以上的PartitionQ一个线E对应一个PartitionQ所以如果有10个线E,却只?个分区的话,׃(x)?个线E被费?
  3. ?008中,q一问题被改q,所有的U程都被投入到所有的Partition中。具体可以参?a title="http://sqlblog.com/blogs/erin_welker/archive/2008/02/10/partitioning-enhancements-in-sql-server-2008.aspx" >Partitioning enhancements in SQL Server 2008?


SIMONE 2011-04-20 15:54 发表评论
]]>SQL Server 2005 中实现通用的异步触发器架构 http://www.aygfsteel.com/wangxinsh55/archive/2008/03/11/185254.htmlSIMONESIMONETue, 11 Mar 2008 01:38:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2008/03/11/185254.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/185254.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2008/03/11/185254.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/185254.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/185254.html阅读全文

SIMONE 2008-03-11 09:38 发表评论
]]>
SQL Server 中出?帐户名与安全标识间无M映射完成"http://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135557.htmlSIMONESIMONEThu, 09 Aug 2007 09:19:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135557.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/135557.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135557.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/135557.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/135557.html安全{略已传播,但有警告信息?0x534 : 帐户名与安全标识间无M映射完成?br>
有关此问题的高帮助可以?http://support.microsoft.com/ 扑ֈ?br>查询 "troubleshooting 1202 events"?br>
当在一个或多个l策略对?GPO)中的用户帐户不能解析Z?SID 时发生错?0x534。导致此错误的原因可能是在用h限或一?GPO 的受限制的组分支中引用的用户帐户键入错误或已被删除。要解析此事Ӟ误pd的管理员Q执行下列操?

1.        识别不能解析Z?SID 的帐?

在命令行中,键入: FIND /I "Cannot find"  %SYSTEMROOT%\Security\Logs\winlogon.log

?FIND 的输ZQ?Cannot find" 后面的字W串是有问题的帐户名?br>
CZ: Cannot find JohnDough?br>
在这U情况下Q用户名 "JohnDough" ?SID 不能定。这通常是因为帐户已l被删除Q被重命名,或拼写错?例如Q?JohnDoe")?br>
2.        ?RSoP 来识别特定的用户权限Q受限制的组Q和饱含有问题帐L(fng)?GPO:

a.        开?-> q行 -> RSoP.msc
b.        查看“计算机配|\Windows 讄\安全讄\本地{略\用户权限分配”?#8220;计算机配|\Windows 讄\安全讄\本地{略\受限制的l?#8221;的结果,查找用红色的 X 标记的错误?br>c.        对于M用红色的 X 标记的用h限或受限制的l,包含有问题的{略的相?GPO 在标题ؓ(f)“?GPO”的列中列出。注意生错误的特定用户权限Q受限制的组和包含的?GPO?br>
3.        从组{略中删除不能解析的帐户

a.        开?-> q行 -> MMC.EXE
b.        ?#8220;文g”菜单选择“d/删除理单元...”
c.        ?#8220;d/删除理单元”对话框选择“d...”
d.        ?#8220;d独立理单元”对话框中选择“l策略对象编辑器”Q然后单?#8220;d”
e.        ?#8220;选择l策略对?#8221;对话框中Q单?#8220;览”按钮
f.        ?#8220;览l策略对?#8221;对话框中Q选择“全部”选项?br>g.        对于在步?2 中识别出的每一个源 GPOQ更正在步骤 2 中用U色?X 标出的特定用h限或受限制的l。这些用h限或受限制的l可以通过删除或更正到在步?1 中识别出的有问题帐户的引用来q行更正?br>


SIMONE 2007-08-09 17:19 发表评论
]]>
excel表的数据导入MSSQL数据?--~冲区来讲太? 错误解决http://www.aygfsteel.com/wangxinsh55/archive/2007/07/03/127921.htmlSIMONESIMONETue, 03 Jul 2007 09:56:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2007/07/03/127921.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/127921.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2007/07/03/127921.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/127921.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/127921.html在源的行号ؓ(f)   9 处出错。到目前为止Q在该Q务中遇到错误? 1?
    作ؓ(f)源列 86Q?#8220;内容?#8221;Q的数据对于所指定的缓冲区来讲太大?/p>

    解决办法Q?/p>

    修改服务器的注册表:(x) HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel 下双d边的"TypeGuessRows"选项Q将"数值数?Ҏ(gu)0?原因是:(x)excel表的数据导入数据库的时候,Jet引擎Ҏ(gu)"TypeGuessRows"选项的值所代表的行数判断内容的数据cdQ默认是Ҏ(gu)?行的内容判断数据cdQ修Ҏ(gu)0后,它会(x)Ҏ(gu)行的内容q行判断Q不q这样做?x)媄响性能?br>



SIMONE 2007-07-03 17:56 发表评论
]]>
SQL SERVER 临时表与表变?/title><link>http://www.aygfsteel.com/wangxinsh55/archive/2006/09/28/72574.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 28 Sep 2006 06:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/wangxinsh55/archive/2006/09/28/72574.html</guid><wfw:comment>http://www.aygfsteel.com/wangxinsh55/comments/72574.html</wfw:comment><comments>http://www.aygfsteel.com/wangxinsh55/archive/2006/09/28/72574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wangxinsh55/comments/commentRss/72574.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wangxinsh55/services/trackbacks/72574.html</trackback:ping><description><![CDATA[<p> <strong> <font style="background-color: rgb(255, 255, 102);">SQL</font> </strong> SERVER?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>有本?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>和全局<strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>之分Q在联机丛书中这hqͼ(x)</p> <div> </div> <div>       有本地和全局两种cd?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>Q二者在名称、可见性和可用性上均不相同。本?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>的名UC单个数字W号 (#) 打头Q它们仅对当前的用户q接是可见的Q当用户?Microsoft® <strong style="color: black; background-color: rgb(255, 255, 102);">SQL</strong> Server™ 2000 实例断开q接时被删除。全局<strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>的名UC数学W号 (##) 打头Q创建后对Q何用户都是可见的Q当所有引用该表的用户?<strong style="color: black; background-color: rgb(255, 255, 102);">SQL</strong> Server 断开q接时被删除?/div> <p> <br /> 在存储过E中创徏的本?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>Q相当于存储q程的变量,只在存储q程内可见,而在前台E序中创建的本地<strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>Q就和微软联Z书中所写的一P是对当前的用戯接可见。了解了q些Q可以在不同场合不同需求下使用不同的方法来创徏本地<strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>Q这P?x)?strong style="color: black; background-color: rgb(160, 255, 255);">临时?/strong>发挥它最大的用处?br /> <br /> <br /> /*****************表变?*******************/<br /> declare @t table(<br />  cataid int<br /> )</p> <p>insert into @t select a.cataid from f_getchlid(27,'5961051') a <br /> select top 10 favorites.*,multicata.cataname <br /> from favorites left outer join multicata on favorites.cataid=multicata.cataid <br /> where favorites.userid='5961051' and favorites.cataid in (<br />  select * from @t)<br /> <br /> <br /> /****************临时?***********************/<br /> Ҏ(gu)一?br /> select a.cataid into #t from f_getchlid(27,'5961051') a <br /> select top 10 favorites.*,multicata.cataname <br /> from favorites left outer join multicata on favorites.cataid=multicata.cataid <br /> where favorites.userid='5961051' and favorites.cataid in (<br />  select * from #t)<br /> drop table #t<br /> <br /> <br /> Ҏ(gu)二?br /> create table #t (<br />  cataid int<br /> )<br /> insert into #t select a.cataid from zhaoguoguang.f_getchlid(27,'5961051') a <br /> select top 10 favorites.*,multicata.cataname <br /> from favorites left outer join multicata on favorites.cataid=multicata.cataid <br /> where favorites.userid='5961051' and favorites.cataid in (<br />  select * from #t)<br /> drop table #t</p> <img src ="http://www.aygfsteel.com/wangxinsh55/aggbug/72574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wangxinsh55/" target="_blank">SIMONE</a> 2006-09-28 14:21 <a href="http://www.aygfsteel.com/wangxinsh55/archive/2006/09/28/72574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Transact_SQL手?/title><link>http://www.aygfsteel.com/wangxinsh55/archive/2006/03/30/38232.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 30 Mar 2006 04:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/wangxinsh55/archive/2006/03/30/38232.html</guid><wfw:comment>http://www.aygfsteel.com/wangxinsh55/comments/38232.html</wfw:comment><comments>http://www.aygfsteel.com/wangxinsh55/archive/2006/03/30/38232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/wangxinsh55/comments/commentRss/38232.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/wangxinsh55/services/trackbacks/38232.html</trackback:ping><description><![CDATA[ <span id="ArticleContent1_ArticleContent1_lblContent">  <p class="postText"><span>*******************Transact_SQL********************</span></p><p class="postText">--?句                              ???br />--数据操作<br />SELECT      --从数据库表中索数据行和列<br />INSERT      --向数据库表添加新数据?br />DELETE      --从数据库表中删除数据?br />UPDATE      --更新数据库表中的数据<br />--数据定义<br />CREATE TABLE    --创徏一个数据库?br />DROP TABLE     --从数据库中删除表<br />ALTER TABLE     --修改数据库表l构<br />CREATE VIEW     --创徏一个视?br />DROP VIEW     --从数据库中删除视?br />CREATE INDEX    --为数据库表创Z个烦?br />DROP INDEX     --从数据库中删除烦?br />CREATE PROCEDURE   --创徏一个存储过E?br />DROP PROCEDURE    --从数据库中删除存储过E?br />CREATE TRIGGER    --创徏一个触发器<br />DROP TRIGGER    --从数据库中删除触发器<br />CREATE SCHEMA    --向数据库d一个新模式<br />DROP SCHEMA     --从数据库中删除一个模?br />CREATE DOMAIN    --创徏一个数据值域<br />ALTER DOMAIN    --改变域定?br />DROP DOMAIN     --从数据库中删除一个域<br />--数据控制<br />GRANT      --授予用户讉K权限<br />DENY      --拒绝用户讉K<br />REVOKE      --解除用户讉K权限<br />--事务控制<br />COMMIT      --l束当前事务<br />ROLLBACK     --中止当前事务<br />SET TRANSACTION    --定义当前事务数据讉K特征<br />--E序化SQL<br />DECLARE      --为查询设定游?br />EXPLAN      --为查询描q数据访问计?br />OPEN      --索查询结果打开一个游?br />FETCH      --索一行查询结?br />CLOSE      --关闭游标<br />PREPARE      --为动态执行准备SQL 语句<br />EXECUTE      --动态地执行SQL 语句<br />DESCRIBE     --描述准备好的查询</p><p class="postText">---局部变?br />declare @id char(10)<br />--set @id = '10010001'<br />select @id = '10010001'</p><p class="postText">---全局变量<br />---必须以@@开?/p><p class="postText">--IF ELSE<br />declare @x int @y int @z int<br />select @x = 1 @y = 2 @z=3<br />if @x > @y<br /> print 'x > y' --打印字符?x > y'<br />else if @y > @z<br /> print 'y > z'<br />else print 'z > y'</p><p class="postText">--CASE<br />use pangu<br />update employee<br />set e_wage =<br /> case<br />  when job_level = ??then e_wage*1.08<br />  when job_level = ??then e_wage*1.07<br />  when job_level = ??then e_wage*1.06<br />  else e_wage*1.05<br /> end</p><p class="postText">--WHILE CONTINUE BREAK<br />declare @x int @y int @c int<br />select @x = 1 @y=1<br />while @x < 3<br /> begin<br />  print @x --打印变量x 的?br />  while @y < 3<br />   begin<br />    select @c = <a href="mailto:100*@x">100*@x</a> + @y<br />    print @c --打印变量c 的?br />    select @y = @y + 1<br />   end<br />  select @x = @x + 1<br />  select @y = 1<br /> end</p><p class="postText">--WAITFOR<br />--?{待1 时2 分零3 U后才执行SELECT 语句<br />waitfor delay ?1:02:03?br />select * from employee<br />--?{到晚上11 炚w8 分后才执行SELECT 语句<br />waitfor time ?3:08:00?br />select * from employee</p><p class="postText"> </p><p class="postText">***SELECT***</p><p class="postText">   select *(列名) from table_name(表名) where column_name operator value<br />   ex:(宿主)<br />  select * from stock_information where stockid   = str(nid)<br />     stockname = 'str_name' <br />     stockname like '% find this %' <br />     stockname like '[a-zA-Z]%' --------- ([]指定值的范围)<br />     stockname like '[^F-M]%'   --------- (^排除指定范围)<br />     --------- 只能在用like关键字的where子句中用通配W?<br />     or stockpath = 'stock_path'<br />     or stocknumber < 1000<br />     and stockindex = 24<br />     not stocksex = 'man'<br />     stocknumber between 20 and 100<br />     stocknumber in(10,20,30)<br />     order by stockid desc(asc) --------- 排序Qdesc-降序Qasc-升序<br />     order by 1,2 --------- by列号<br />     stockname = (select stockname from stock_information  where stockid  = 4)<br />     --------- 子查?br />     --------- 除非能确保内层select只返回一个行的|<br />     --------- 否则应在外层where子句中用一个in限定W?br />  select distinct column_name form table_name --------- distinct指定索独有的列|不重?br />  select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name<br />  select stockname , "stocknumber" = count(*) from table_name group by stockname<br />                                      --------- group by 表按行分组,指定列中有相同的?br />          having count(*) = 2  ---------  having选定指定的组<br />        <br />  select * <br />  from table1, table2                  <br />  where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示<br />     table1.id =* table2.id -------- 叛_部连?</p><p class="postText">  select stockname from table1<br />  union [all]  -----  union合ƈ查询l果集,all-保留重复?br />  select stockname from table2</p><p class="postText">***insert***</p><p class="postText">  insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")<br />              value (select Stockname , Stocknumber from Stock_table2)---value为select语句</p><p class="postText">***update***</p><p class="postText">  update table_name set Stockname = "xxx" [where Stockid = 3]<br />         Stockname = default<br />         Stockname = null<br />         Stocknumber = Stockname + 4</p><p class="postText">***delete***</p><p class="postText">  delete from table_name where Stockid = 3<br />  truncate table_name ----------- 删除表中所有行Q仍保持表的完整?br />  drop table table_name --------------- 完全删除?/p><p class="postText">***alter table*** --- 修改数据库表l构</p><p class="postText">  alter table database.owner.table_name add column_name char(2) null .....<br />  sp_help table_name ---- 昄表已有特?br />  create table table_name (name char(20), age smallint, lname varchar(30))<br />  insert into table_name select ......... ----- 实现删除列的Ҏ(gu)Q创建新表)<br />  alter table table_name drop constraint Stockname_default ---- 删除Stockname的defaultU束<br />    <br />***function(/*常用函数*/)***</p><p class="postText">----l计函数----<br />AVG    --求^均?br />COUNT   --l计数目<br />MAX    --求最大?br />MIN    --求最?br />SUM    --求和</p><p class="postText">--AVG<br />use pangu<br />select avg(e_wage) as dept_avgWage<br />from employee<br />group by dept_id</p><p class="postText">--MAX<br />--求工资最高的员工姓名<br />use pangu<br />select e_name<br />from employee<br />where e_wage =<br /> (select max(e_wage)<br />  from employee)</p><p class="postText">--STDEV()<br />--STDEV()函数q回表达式中所有数据的标准?/p><p class="postText">--STDEVP()<br />--STDEVP()函数q回M标准?/p><p class="postText">--VAR()<br />--VAR()函数q回表达式中所有值的l计变异?/p><p class="postText">--VARP()<br />--VARP()函数q回M变异?/p><p class="postText">----术函数----</p><p class="postText">/***三角函数***/<br />SIN(float_expression) --q回以弧度表C的角的正u<br />COS(float_expression) --q回以弧度表C的角的余u<br />TAN(float_expression) --q回以弧度表C的角的正切<br />COT(float_expression) --q回以弧度表C的角的余切<br />/***反三角函?**/<br />ASIN(float_expression) --q回正u是FLOAT 值的以弧度表C的?br />ACOS(float_expression) --q回余u是FLOAT 值的以弧度表C的?br />ATAN(float_expression) --q回正切是FLOAT 值的以弧度表C的?br />ATAN2(float_expression1,float_expression2) <br />        --q回正切是float_expression1 /float_expres-sion2的以弧度表示的角<br />DEGREES(numeric_expression)<br />                       --把弧度{换ؓ(f)角度q回与表辑ּ相同的数据类型可?br />        --INTEGER/MONEY/REAL/FLOAT cd<br />RADIANS(numeric_expression) --把角度{换ؓ(f)弧度q回与表辑ּ相同的数据类型可?br />        --INTEGER/MONEY/REAL/FLOAT cd<br />EXP(float_expression)  --q回表达式的指数?br />LOG(float_expression)  --q回表达式的自然Ҏ(gu)?br />LOG10(float_expression)--q回表达式的?0 为底的对数?br />SQRT(float_expression) --q回表达式的qx?br />/***取近似值函?**/<br />CEILING(numeric_expression)  --q回>=表达式的最整数返回的数据cd与表辑ּ相同可ؓ(f)<br />        --INTEGER/MONEY/REAL/FLOAT cd<br />FLOOR(numeric_expression)    --q回<=表达式的最整数返回的数据cd与表辑ּ相同可ؓ(f)<br />        --INTEGER/MONEY/REAL/FLOAT cd<br />ROUND(numeric_expression)    --q回以integer_expression 为精度的四舍五入D回的数据<br />        --cd与表辑ּ相同可ؓ(f)INTEGER/MONEY/REAL/FLOAT cd<br />ABS(numeric_expression)      --q回表达式的l对D回的数据cd与表辑ּ相同可ؓ(f)<br />        --INTEGER/MONEY/REAL/FLOAT cd<br />SIGN(numeric_expression)     --试参数的正负号q回0 零? 正数?1 负数q回的数据类?br />        --与表辑ּ相同可ؓ(f)INTEGER/MONEY/REAL/FLOAT cd<br />PI()       --q回gؓ(f)π ?.1415926535897936<br />RAND([integer_expression])   --用Q选的[integer_expression]做种子值得?-1 间的随机点?/p><p class="postText"><br />----字符串函?---<br />ASCII()         --函数q回字符表达式最左端字符的ASCII 码?br />CHAR()   --函数用于ASCII 码{换ؓ(f)字符<br />    --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数?x)返回一个NULL ?br />LOWER()   --函数把字W串全部转换为小?br />UPPER()   --函数把字W串全部转换为大?br />STR()   --函数把数值型数据转换为字W型数据<br />LTRIM()   --函数把字W串头部的空格去?br />RTRIM()   --函数把字W串N的空格去?br />LEFT(),RIGHT(),SUBSTRING()  --函数q回部分字符?br />CHARINDEX(),PATINDEX()  --函数q回字符串中某个指定的子串出现的开始位|?br />SOUNDEX()  --函数q回一个四位字W码 <br />    --SOUNDEX函数可用来查扑֣音相似的字符串但SOUNDEX函数Ҏ(gu)字和汉字均只q回0 值   ?<br />DIFFERENCE()    --函数q回由SOUNDEX 函数q回的两个字W表辑ּ的值的差异<br />    --0 两个SOUNDEX 函数q回值的W一个字W不?br />    --1 两个SOUNDEX 函数q回值的W一个字W相?br />    --2 两个SOUNDEX 函数q回值的W一二个字符相同<br />    --3 两个SOUNDEX 函数q回值的W一二三个字W相?br />    --4 两个SOUNDEX 函数q回值完全相?br />                                       </p><p class="postText">QUOTENAME()  --函数q回被特定字W括h的字W串<br />/*select quotename('abc', '{') quotename('abc')<br />q行l果如下<br />----------------------------------{<br />{abc} [abc]*/</p><p class="postText">REPLICATE()     --函数q回一个重复character_expression 指定ơ数的字W串<br />/*select replicate('abc', 3) replicate( 'abc', -2)<br />q行l果如下<br />----------- -----------<br />abcabcabc NULL*/</p><p class="postText">REVERSE()       --函数指定的字符串的字符排列序颠?br />REPLACE()       --函数q回被替换了指定子串的字W串<br />/*select replace('abc123g', '123', 'def')<br />q行l果如下<br />----------- -----------<br />abcdefg*/</p><p class="postText">SPACE()   --函数q回一个有指定长度的空白字W串<br />STUFF()   --函数用另一子串替换字符串指定位|长度的子串</p><p class="postText"><br />----数据cd转换函数----<br />CAST() 函数语法如下<br />CAST() (<expression> AS <data_ type>[ length ])<br />CONVERT() 函数语法如下<br />CONVERT() (<data_ type>[ length ], <expression> [, style])</p><p class="postText">select cast(100+99 as char) convert(varchar(12), getdate())<br />q行l果如下<br />------------------------------ ------------<br />199   Jan 15 2000</p><p class="postText">----日期函数----<br />DAY()   --函数q回date_expression 中的日期?br />MONTH()   --函数q回date_expression 中的月䆾?br />YEAR()   --函数q回date_expression 中的q䆾?br />DATEADD(<datepart> ,<number> ,<date>) <br />    --函数q回指定日期date 加上指定的额外日期间隔number 产生的新日期<br />DATEDIFF(<datepart> ,<number> ,<date>)<br />    --函数q回两个指定日期在datepart 斚w的不同之?br />DATENAME(<datepart> , <date>)  --函数以字W串的Ş式返回日期的指定部分<br />DATEPART(<datepart> , <date>)  --函数以整数值的形式q回日期的指定部?br />GETDATE()  --函数以DATETIME 的缺省格式返回系l当前的日期和时?/p><p class="postText">----pȝ函数----<br />APP_NAME()      --函数q回当前执行的应用程序的名称<br />COALESCE()  --函数q回众多表达式中W一个非NULL 表达式的?br />COL_LENGTH(<'table_name'>, <'column_name'>) --函数q回表中指定字段的长度?br />COL_NAME(<table_id>, <column_id>)   --函数q回表中指定字段的名U即列名<br />DATALENGTH() --函数q回数据表达式的数据的实际长?br />DB_ID(['database_name']) --函数q回数据库的~号<br />DB_NAME(database_id)  --函数q回数据库的名称<br />HOST_ID()     --函数q回服务器端计算机的名称<br />HOST_NAME()     --函数q回服务器端计算机的名称<br />IDENTITY(<data_type>[, seed increment]) [AS column_name])<br /> --IDENTITY() 函数只在SELECT INTO 语句中用用于插入一个identity column列到新表?br />/*select identity(int, 1, 1) as column_name<br /> into newtable<br /> from oldtable*/<br />ISDATE()  --函数判断所l定的表辑ּ是否为合理日?br />ISNULL(<check_expression>, <replacement_value>) --函数表辑ּ中的NULL 值用指定值替?br />ISNUMERIC()  --函数判断所l定的表辑ּ是否为合理的数?br />NEWID()   --函数q回一个UNIQUEIDENTIFIER cd的数?br />NULLIF(<expression1>, <expression2>)<br /> --NULLIF 函数在expression1 与expression2 相等时返回NULL D不相{时则返回expression1 的?/p></span> <br /> <img src ="http://www.aygfsteel.com/wangxinsh55/aggbug/38232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/wangxinsh55/" target="_blank">SIMONE</a> 2006-03-30 12:53 <a href="http://www.aygfsteel.com/wangxinsh55/archive/2006/03/30/38232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">²</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ԫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">崨</a>| <a href="http://" target="_blank">ԫ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">޽</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">潭</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">彧</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ׯ</a>| <a href="http://" target="_blank">ͷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>