使用while循环来对每一行执行操作。示例代码如下:
DECLARE @count INT
SET @count=0
DECLARE @maxCount INT
SET @maxCount=0
SELECT @maxCount=COUNT(*) FROM TwitterHot
WHERE CataID=1
WHILE @maxCount>0
BEGIN
UPDATE TwitterHot SET Sort=@count+1
WHERE ID=(SELECT TOP 1 ID FROM TwitterHot WHERE Sort=0 AND cataID=1 ORDER BY ID)
SET @count=@count+1
SET @maxCount=@maxCount-1
END
使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:
selectDepartment_NoasdepartmentNo,ROW_NUMBER() OVER(ORDER BY Department_No) AS rowNumber into#depTemp--建立临时表fromdepartments
declare@maxint--获得最大的rowNumber
select@max=max(rownumber)
from#depTemp
declare@rowNoint
set@rowNo=1
while@rowNo<=@max--对每一个rowNumber进行循环操作
begin
--这儿对每一行要进行的操作的代码
set@rowNo=@rowNo+1
end
droptable#depTemp--清除临时表