批量更新数据

 

update  BuyPruduct  set  AmountInvoice  =  AmountInvoice  -  b.Amount  from  
(
        
select  BuyProtocolProductID,Amount  from  BuyInvoiceProduct 
         
where  BuyInvoiceID  =   @ImportValue

as  b 
where  BuyPruduct.ID  =  b.BuyProtocolProductID

 其中BuyProduct 的ID是主键

BuyInvoiceProduct表中的 BuyProtocolProductID 字段和BuyProduct中 的ID是相同的

这种情况是在删除 BuyInvoice 表中的记录是

把BuyInvoiceProduct表中的记录全都的删除

同时还要修改BuyPruduct表中的记录,

由于不太熟在sql数据里写存储过程

以后这种实现都在每删除一条BuyInvoiceProduct记录

同时去更新一个BuyPruduct表中对应记录AmountInvoice的值

后来想了想了如果有一百记录的话

那致少得循环的一百的打开数据,连接数据.

这样事必对数据产能行大的冲击.

后来在网上看到了有关一些批量更新的法子

于是就更用了上面那种

如果用这个的话,打开数据连接最多三次

第一次是删除BuyInvoice里的记录时打开一次.

第二次就是更新BuyPruduct表时打又打开一次

最后一新就是删除BuyInvoiceProduct中的记录.

不管有多少条记录,也最多只打开三个,双以前写的那种,可以说好多啦.

这样不尽减少了网络的数据流量同时也对减轻了数据的负担.

当然最好的法子就是写一个存储过程(可惜像样的还不会写.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值