--游标+事务+存储过程混合使用 ---------------数据准备---------- CREATE TABLE t2 ( [aa] [varchar](50) primary key NOT NULL, [bb] [varchar](50) NULL, [cc] [varchar](50) NULL) --随便插入点数据 insert into t2 select 'aa','aa','aa' union select 'bb','bb','bb' union select 'cc','cc','cc' -------------脚本部分----------------------- create procedure pro_test as --开始事务 begin tran mytran declare @djbh varchar(20) --1 定义游标 declare cur_t2 cursor for select aa from t2 --2 打开游标 open cur_t2 --3 使用游标 fetch next from cur_t2 into @djbh while @@FETCH_STATUS=0 begin update t2 set cc=cc+'测试' where aa=@djbh fetch next from cur_t2 into @djbh end --4 关闭游标 close cur_t2 deallocate cur_t2 --回滚事务处理 if @@error<>0 begin rollback tran mytran print '更新记录出错' return end commit tran mytran -------执行----------------------------------------- --exec pro_test --select * from t2