--游标+事务+存储过程混合使用
---------------数据准备----------
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