SQL2005实现循环每一行做一定操作。

要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:
SQL2005实现循环每一行做一定操作。 select  Department_No  as  departmentNo,ROW_NUMBER()  OVER ( ORDER   BY  Department_No)  AS  rowNumber  into  #depTemp -- 建立临时表
SQL2005实现循环每一行做一定操作。
from  departments
SQL2005实现循环每一行做一定操作。
SQL2005实现循环每一行做一定操作。
declare   @max   int -- 获得最大的rowNumber
SQL2005实现循环每一行做一定操作。
select   @max = max (rownumber)
SQL2005实现循环每一行做一定操作。
from  #depTemp
SQL2005实现循环每一行做一定操作。
SQL2005实现循环每一行做一定操作。
declare   @rowNo   int
SQL2005实现循环每一行做一定操作。
set   @rowNo = 1
SQL2005实现循环每一行做一定操作。
while   @rowNo <= @max -- 对每一个rowNumber进行循环操作
SQL2005实现循环每一行做一定操作。
begin
SQL2005实现循环每一行做一定操作。
-- 这儿对每一行要进行的操作的代码
SQL2005实现循环每一行做一定操作。
set   @rowNo = @rowNo + 1
SQL2005实现循环每一行做一定操作。
end
SQL2005实现循环每一行做一定操作。
SQL2005实现循环每一行做一定操作。
drop   table  #depTemp -- 清除临时表

你可能感兴趣的:(sql2005)