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

  • 相关阅读:
    WebSocket理解与使用
    JS面向对象与prototype,__proto__,constructor
    JS值传递与引用传递
    vue报错:./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!
    对于图片视频编辑类产品的思考
    时尚衣裙外贸独立站搭建(一)
    2021年Wordpress手把手教你做个独立站——部署篇
    一次备案失败所引发的思考
    2021年Wordpress博客装修美化(二)
    做什么,怎么做?(20210615)
  • 原文地址:https://www.cnblogs.com/xiaoliao/p/3416672.html
Copyright © 2011-2022 走看看