1:游标,这不多说。
2:临时表:
思路如下:
@@RowCount来控制循环结束标记。
临时表里生成一个自动增长ID
达到总行数时,结束循环。
大概写一下:
假设有个实体表Table_UserAccount
两列:
UserID uniqueidentifier
UserName Nvarchar(100)
现要遍历该学生表
/*行号,用于循环*/
DECLARE @ROWNUM INT
/*总行数*/
DECLARE @TOTALCOUNT INT
/*创建临时表#TMP_USER_0323用于循环*/
SELECT IDENTITY(1,1) AS ID,USERID,USERNAME INTO #TMP_USER_0323 FROM TABLE_USERACCOUNT
/*设置循环总数*/
SET @TOTALCOUNT = @@ROWCOUNT
/*设置循环起始值*/
SET @ROWNUM = 1
WHILE @ROWNUM <=@TOTALCOUNT
BEGIN
/*具体------------------操作*/
SELECT USERID,USERNAME FROM #TMP_USER_0323
WHERE ID = @ROWNUM
/*循环变量增 1*/
SET @ROWNUM = @ROWNUM + 1
END
大概这个样子。当然,也看到有人用SET @ROWCOUNT 0/1来处理或者用min/max来进行循环结束控制。
循环么,只要找到结束条件就Ok了。
不知道还有其他方法没呢?