循环批量更新的的存储过程(属于转载)
2011-12-27 10:02
218 查看
View Code
编辑器加载中...
CREATE PROCEDURE addusermodule @ModuleId_Array varChar(2000), @UserId int AS DECLARE @PointerPrev int DECLARE @PointerCurr int DECLARE @TId int Set @PointerPrev=1 set @PointerCurr=1 begin transaction Set NoCount ON delete from tests where userid=@UserId Set @PointerCurr=CharIndex (',',@ModuleId_Array ,@PointerPrev+1) set @TId=cast (SUBSTRING(@ModuleId_Array,@PointerPrev ,@PointerCurr-@PointerPrev) as int) Insert into tests (userid,moduleid) Values(@UserId,@TId) SET @PointerPrev = @PointerCurr while (@PointerPrev+1 < LEN(@ModuleId_Array)) Begin Set @PointerCurr=CharIndex( ',',@ModuleId_Array, @PointerPrev+1) if(@PointerCurr> 0) Begin set @TId=cast (SUBSTRING(@ModuleId_Array,@PointerPrev +1,@PointerCurr- @PointerPrev-1) as int) Insert into tests (userid,moduleid) Values (@UserId,@TId) SET @PointerPrev = @PointerCurr End else Break End set @TId=cast(SUBSTRING(@ModuleId_Array,@PointerPrev+ 1,LEN(@ModuleId_Array )-@PointerPrev) as int) Insert into tests (userid,moduleid) Values (@UserId,@TId) delete from tests where moduleid =0 Set NoCount OFF if @@error= 0 begin commit transaction end else begin rollback transaction end GO
编辑器加载中...
相关文章推荐
- MYSQL存储过程:批量更新数据
- MYSQL存储过程:批量更新数据
- Oracle中采用存储过程的方式批量更新数据
- MYSQL存储过程:批量更新数据2(产品品牌)
- MYSQL存储过程:批量更新数据2(产品品牌)
- 使用mssql2008新特性(存储过程参数类型使用"用户自定义表"来实现批量DML更新多表)解决项目里遇到的性能问题
- MySQL存储过程中的3种循环【转载】
- oracle 存储过程循环更新
- 一个批量更新的存储过程如何写?
- MYSQL存储过程:批量更新、插入数据、游标
- 采用存储过程的方式批量更新数据
- 因为不想再程序中写循环,因此把UI页面需要更新的纪录的主键组成了一个以","隔开的字符串,将这个字符串传入存储过程中进行处理(转)
- 利用mysql存储过程循环更新会员
- 存储过程调用自定义函数实现循环更新
- Sybase 存储过程迁移至DB2错误集锦——不断更新
- MySQL存储过程中的3种循环
- 批量加密SQLSERVER 2000 的存储过程
- 使用while循环和伪列的存储过程
- MySQL存储过程中使用WHILE循环语句的方法
- C#中数据的批量插入和更新 转载自21教程网