死锁问题

时间:2017-06-14 15:46:13

标签: sql sql-server deadlock

我收到一些死锁错误,这个更新是一个sql server选择杀死

   UPDATE Dealer_Balance  
   SET Balance = COALESCE(EndBalance,0),   
   Deposit = COALESCE(EndDeposit,0),  
   Overdraft = COALESCE(EndOverdraft,0)  
   FROM Dealer_Balance WITH (ROWLOCK,HOLDLOCK)  
   INNER JOIN @BalanceTable AS BalanceTable ON  
   Dealer_Balance.DealerID = BalanceTable.ContractorID  
   END  

我有点迷失在这里,我应该在BD中寻找什么?变量表有任何锁定问题吗?

在此更新之前,我在下面的查询中使用相同的步骤:

 INSERT INTO @BalanceTable  
 (ContractorType, ContractorID, StartBalance, EndBalance, CurBalance, 
 StartDeposit, EndDeposit, CurDeposit, StartOverdraft, EndOverdraft,   
 CurOverdraft, TransferDate, PayType)  
 SELECT   
 AccountChange.ContractorType, AccountChange.ContractorID, 
 Dealer_Balance.Balance AS StartBalance,   
 (Dealer_Balance.Balance + COALESCE(AccountChange.BalanceChange, 0)) AS 
 EndBalance, NULL AS CurBalance, Dealer_Balance.Deposit AS StartDeposit,   
 (Dealer_Balance.Deposit + COALESCE(AccountChange.DepositChange,0)) AS 
 EndDeposit, NULL AS CurDeposit, Dealer_Balance.Overdraft,   
 (Dealer_Balance.Overdraft + COALESCE(AccountChange.OverdraftChange,0)) 
 AS EndOverdraft, NULL AS CurOverdraft,   
 COALESCE(@AdvancedOverrideTransferDate,GetDate()) AS TransferDate, 
 AccountChange.PayType  
 FROM Dealer_Balance WITH (ROWLOCK,HOLDLOCK)--(ROWLOCK,XLOCK)   
 INNER JOIN @AccountChangeTable AS AccountChange ON   
 Dealer_Balance.DealerID = AccountChange.ContractorID  

有人可以给我一些建议吗?

0 个答案:

没有答案
相关问题