SQL游标的简单例子

sql server游标的的简单应用

写了个触发器,自己遇到的问题说明一下。

技术细节

declare cur CURSOR for select classid from emp_user
declare @A1 varchar(10);
begin
open cur;
fetch next from cur into @A1
while(@@fetch_status=0)
begin
print(‘当classid为’+@A1+‘开始’);
if(@A1=1)
begin
update emp_user set testValues=‘111111’ where classid=@A1;
end
if (@A1=2)
begin
update emp_user set testValues=‘222’ where classid=@A1;
end
if(@A1=3)
begin
update emp_user set testValues=‘333333’ where classid=@A1;
end
print(‘当classid为’+@A1+‘结束’);
fetch next from cur into @A1
end;

close cur;
deallocate cur

end;
总结:

  1. select * 那点:我第一次写时带了个星,然后后面赋值时,傻了,这表好多字段,实际上,我就需要遍历一个字段。
  2. 写完游标,不知如何运行,原来跟sql语句一样,直接点叹号就好了。丢人了。
  3. if 使用时需要跟begin 和 end
  4. print 打印变量,做标记,迅速知道问题出在哪。尤其是有循环的时候,调式时最好用。SQL游标的简单例子_第1张图片
    当classid为1开始

(1 行受影响)
当classid为1结束
当classid为4开始
当classid为4结束
当classid为4开始
当classid为4结束
当classid为5开始
当classid为5结束
当classid为2开始

(1 行受影响)
当classid为2结束
当classid为4开始
当classid为4结束
当classid为3开始

(1 行受影响)
当classid为3结束

例如:

  • API
  • 支持模型类型

小结

提示:这里可以添加总结

例如:

提供先进的推理,复杂的指令,更多的创造力。

你可能感兴趣的:(sql,数据库)