标签:
存储过程好比C#方法
1.事物写在过程里面,直接调用存储过程
1.1没有参数的过程
/*transaction事物,procedure存储过程*/ create proc CopyTable_1_10000 as begin tran--开始事物 declare @tran_error int;--声明参数 set @tran_error=0;--给参数赋值 declare @i int,@y int; set @i=10000;set @y=1; /*新表不存在时,将数据复制到新表 select * into table_3 from(select*from table_1)as a */ while @y<@i --循环 begin /*新表存在,将数据复制*/ insert into table_3(materialName,Mtype) select materialName,Mtype from table_1 set @y=@y+1;--循环条件 set @tran_error=@tran_error+@@ERROR;--事物用于记录错误的系统参数 end /*判断事物执行是否出错*/ if(@tran_error>0)--@tran_error大于1代表出错,事物回滚 begin rollback tran; print ‘事物回滚‘ end else begin commit tran print ‘提交事物‘ end
--调用存储过程 exec CopyTable_1_10000
1.2带传参的过程
--PROC带参数 create proc showDescription @Mtype int--需要传递的参数 as begin select * into #table_3 from (select table_1.materialName,table_2.MtypeDescription from table_1 left join table_2 on table_1.Mtype=table_2.id where table_1.Mtype=@Mtype)as c select * from #table_3 end --调用,传递@Mtype参数 exec showDescription @Mtype=2 --删除 drop proc showDescription
标签:
原文地址:http://www.cnblogs.com/Evan-Pei/p/4648687.html