zoukankan      html  css  js  c++  java
  • sql传入组合字符串批量操作

    批量操作时我们可以传入一个有规律的ID或则是其他唯一值字段的组合字符串,然后:select/update/inset......where  字段 in(传入的组合字符串),而且很多时候我们还涉及到其他操作,下面也有代码,就是将传入的组合字符串,重新分割后,再次对数据库进行操作

    create proc prc_OrderBatchHandle
    @Sgin int,
    @BatchStr varchar(50),
    @HandleAdmin varchar(50)
    as
    declare @MediumBatchStr varchar(500)
    set @MediumBatchStr=','+@BatchStr+','//这里是将传入的字符串 前后各加一个,符号,重新组合成一个有规律的字符串,已方便下面切分操作
    declare @prc_GroupStr nvarchar(600)
    declare @prc_AddHandleMember nvarchar(600)

    if(@Sgin=1)
    begin
    set @prc_GroupStr= N'update QD_OrderSheet set order_nowState=''成功'' where order_Id IN ('+@BatchStr+')'
    exec sp_ExecuteSql @prc_GroupStr

    set @prc_AddHandleMember= N'update QD_OrderSheet set order_handleUser='''+@HandleAdmin+''' where order_Id IN ('+@BatchStr+')'
    exec sp_ExecuteSql @prc_AddHandleMember

    end
    else if(@Sgin=2)
    begin
    set @prc_GroupStr= N'update QD_OrderSheet set order_nowState=''失败'' where order_Id IN ('+@BatchStr+')'
    exec sp_ExecuteSql @prc_GroupStr
    set @prc_AddHandleMember= N'update QD_OrderSheet set order_handleUser='''+@HandleAdmin+''' where order_Id IN ('+@BatchStr+')'
    exec sp_ExecuteSql @prc_AddHandleMember
    while(LEN(@MediumBatchStr)>1)字符串分割后操作部分
    begin
    declare @value varchar(50)
    select            @value=left(stuff(@MediumBatchStr,1,charindex(',',@MediumBatchStr),''),charindex(',',stuff(@MediumBatchStr,1,charindex(',',@MediumBatchStr),''))-1)
    declare @ReturnMoney money
    select @ReturnMoney= order_Price from QD_OrderSheet where order_Id=cast(@value as int)
    declare @BuyUser varchar(50)
    select @BuyUser=order_BuyAccount from QD_OrderSheet where order_Id=cast(@value as int)
    declare @Suppler varchar(50)
    select @Suppler=order_supplierName from QD_OrderSheet where order_Id=cast(@value as int)
    update QD_UserSheet set user_Money=user_Money+@ReturnMoney where user_Account=@BuyUser
    update QD_SuppierSheet set Supplier_Money=Supplier_Money-@ReturnMoney where Supplier_Account=@Suppler
    set @MediumBatchStr=stuff(@MediumBatchStr,1,LEN(@value)+1,'')
    end 分割后结束部分

    end

    else

    begin
    set @prc_GroupStr= N'delete from QD_OrderSheet where source_Id IN('+@BatchStr+')'
    exec sp_ExecuteSql @prc_GroupStr
    end

  • 相关阅读:
    Android系统框架
    get请求在ie浏览器下有缓存
    select2的基本用法
    js 获取url中的查询字符串
    常用的正则验证
    此计算机当前已经连接限制为。。
    sharepoint 备份和还原site脚本
    sharepoint 删除list里的所有内容
    ajax调用服务的基本格式
    rest的config
  • 原文地址:https://www.cnblogs.com/xiaoliao/p/3416672.html
Copyright © 2011-2022 走看看