sql server 游标的使用
1 -- zhxia
2 DECLARE @username VARCHAR(20),@flag BIT,@ncount int
3 DECLARE mycursor CURSOR FOR --声明游标
4 SELECT user_name FROM RBAC_User
5 OPEN mycursor --打开游标
6 SET @flag=0
7 SET @ncount=0
8 WHILE(@flag=0)
9 BEGIN
10 SET @ncount=@ncount+1
11 FETCH mycursor INTO @username --循环读取游标
12 IF(@@FETCH_STATUS=0)
13 UPDATE RBAC_User SET User_PassWord=@ncount WHERE User_Name=@username
14 ELSE
15 SET @flag=1
16 END
17 CLOSE mycursor --关闭游标
18 DEALLOCATE mycursor --释放资源
19
20 @@FETCH_STATUS
21 返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
22 @@FETCH_STATUS=0 成功
23 @@FETCH_STATUS=-1 FETCH 语句失败或此行不在结果集中。
24 @@FETCH_STATUS=-2 被提取的行不存在
25 @@FETCH_STATUS=100 处于最后行
2 DECLARE @username VARCHAR(20),@flag BIT,@ncount int
3 DECLARE mycursor CURSOR FOR --声明游标
4 SELECT user_name FROM RBAC_User
5 OPEN mycursor --打开游标
6 SET @flag=0
7 SET @ncount=0
8 WHILE(@flag=0)
9 BEGIN
10 SET @ncount=@ncount+1
11 FETCH mycursor INTO @username --循环读取游标
12 IF(@@FETCH_STATUS=0)
13 UPDATE RBAC_User SET User_PassWord=@ncount WHERE User_Name=@username
14 ELSE
15 SET @flag=1
16 END
17 CLOSE mycursor --关闭游标
18 DEALLOCATE mycursor --释放资源
19
20 @@FETCH_STATUS
21 返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
22 @@FETCH_STATUS=0 成功
23 @@FETCH_STATUS=-1 FETCH 语句失败或此行不在结果集中。
24 @@FETCH_STATUS=-2 被提取的行不存在
25 @@FETCH_STATUS=100 处于最后行