要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:
select
Department_No
as
departmentNo,ROW_NUMBER()
OVER
(
ORDER
BY
Department_No)
AS
rowNumber
into
#depTemp
--
建立临时表
from departments
declare @max int -- 获得最大的rowNumber
select @max = max (rownumber)
from #depTemp
declare @rowNo int
set @rowNo = 1
while @rowNo <= @max -- 对每一个rowNumber进行循环操作
begin
-- 这儿对每一行要进行的操作的代码
set @rowNo = @rowNo + 1
end
drop table #depTemp -- 清除临时表
from departments
declare @max int -- 获得最大的rowNumber
select @max = max (rownumber)
from #depTemp
declare @rowNo int
set @rowNo = 1
while @rowNo <= @max -- 对每一个rowNumber进行循环操作
begin
-- 这儿对每一行要进行的操作的代码
set @rowNo = @rowNo + 1
end
drop table #depTemp -- 清除临时表
本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/archive/2007/04/09/705882.html
,如需转载请自行联系原作者