+ -
当前位置:首页 → 问答吧 → 求一条MSSQL的循环语句

求一条MSSQL的循环语句

时间:2011-12-14

来源:互联网

有表Client_Temp,其中有字段 UpdateOrInsert 类型为 int
要求:


SELECT * FROM Client_Temp 
WHERE UserID =2009 AND UpdateOrInsert <>2

结果可能为N条,然后开始循环,从第一条开始,

BEGIN
  IF UpdateOrInsert = 0
  BEGIN
  --余下的操作俺自个来,呵呵。
  END

  IF UpdateOrInsert = 1
  BEGIN
  --余下的操作俺自个来,呵呵。
  END
END

作者: andylist   发布时间: 2011-12-14

用游标吧

作者: ssp2009   发布时间: 2011-12-14

不懂游标啊。希望各位高手帮帮忙。

作者: andylist   发布时间: 2011-12-14

SQL code
declare @UpdateOrInsert int
DECLARE cursor1 CURSOR    --声明游标
 FOR SELECT UpdateOrInsert FROM Client_Temp  
            WHERE UserID =2009 AND UpdateOrInsert <>2

OPEN cursor1    --打开游标

FETCH NEXT FROM cursor1    --获取游标的下一行数据

into @UpdateOrInsert    --使变量获得当前游标指定行的UpdateOrInsert

WHILE @@FETCH_STATUS = 0    --FETCH语句执行成功
BEGIN
   if @UpdateOrInsert=0
    begin
       ---你的操作
    end
    
FETCH NEXT FROM cursor1     --获取游标的下一行
     into @ids,@names    --使变量获得当前游标指定行的UpdateOrInsert

End
CLOSE cursor1    --关闭游标
DEALLOCATE cursor1   --释放游标 

作者: ssp2009   发布时间: 2011-12-14

如果你那个"余下的操作",会更改 userid 或 updateorinsert,那可以直接用它来判断而不要用游标:

begin
while exists(select 1 from client_temp where userid=2009 and updateorinsert=0)
begin
这儿你写
end

while exists(select 1 from client_temp where userid=2009 and updateorinsert=1)
begin
这儿你写
end
end

作者: qianjin036a   发布时间: 2011-12-14