SQL2005实现循环每一行做一定操作
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:<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%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.cnblogs.com/Images/OutliningIndicators/None.gifselectDepartment_NoasdepartmentNo,ROW_NUMBER()OVER(ORDERBYDepartment_No)ASrowNumberinto#depTemp--建立临时表http://www.cnblogs.com/Images/OutliningIndicators/None.giffromdepartments
http://www.cnblogs.com/Images/OutliningIndicators/None.gif
http://www.cnblogs.com/Images/OutliningIndicators/None.gifdeclare@maxint--获得最大的rowNumber
http://www.cnblogs.com/Images/OutliningIndicators/None.gifselect@max=max(rownumber)
http://www.cnblogs.com/Images/OutliningIndicators/None.giffrom#depTemp
http://www.cnblogs.com/Images/OutliningIndicators/None.gif
http://www.cnblogs.com/Images/OutliningIndicators/None.gifdeclare@rowNoint
http://www.cnblogs.com/Images/OutliningIndicators/None.gifset@rowNo=1
http://www.cnblogs.com/Images/OutliningIndicators/None.gifwhile@rowNo<=@max--对每一个rowNumber进行循环操作
http://www.cnblogs.com/Images/OutliningIndicators/None.gifbegin
http://www.cnblogs.com/Images/OutliningIndicators/None.gif--这儿对每一行要进行的操作的代码
http://www.cnblogs.com/Images/OutliningIndicators/None.gifset@rowNo=@rowNo+1
http://www.cnblogs.com/Images/OutliningIndicators/None.gifend
http://www.cnblogs.com/Images/OutliningIndicators/None.gif
http://www.cnblogs.com/Images/OutliningIndicators/None.gifdroptable#depTemp--清除临时表
页:
[1]