要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用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
--
清除临时表















