transactions SQL dans

affaires

Tout d'abord, ce qui est une transaction

1.1 Les affaires concept et exigences

  1. Transaction (transactions) sont une série d'opérations comme une seule unité logique de travail effectué
  2. Plusieurs systèmes d'exploitation dans son ensemble à soumettre, soit toutes exécutées ou non
  3. Une transaction est une unité logique de travail indivisible de

1.2 Caractéristiques transaction (ACID)

  1. Atomicité (atomicité): Une transaction est une opération complète, le fonctionnement des différentes étapes de la transaction sont inséparables, il est soit exécuté ou non exécuté
  2. La cohérence (cohérence): Une fois la transaction terminée, les données doivent être dans un état cohérent
  3. Isolation (Isolement): isolé de l'autre entre les opérations simultanées, de manière indépendante. Il ne devrait pas dépendre ou affectées de quelque manière que d'autres questions
  4. Persistante (durabilité): Après l'opération est terminée, modifier sa base de données sont stockées de façon permanente

En second lieu, la classification de la transaction

2.1 montre affaires

  1. Il est clair que la transaction spécifiée avec le début BEGIN TRANSACTION
  2. Le plus type de transaction commune

2.2 transaction implicite

  1. En règle générale IMPLICIT_TRANSACTIONS ensemble SET instruction On mode de transaction implicite est prête à ouvrir
  2. Suivi par instruction T-SQL démarre automatiquement une nouvelle transaction
  3. Après une transaction est validée ou annulée, l'instruction suivante T-SQL démarre à son tour une nouvelle transaction

2.3 validera automatiquement la transaction

  1. Le mode par défaut pour SQL Server
  2. Chaque instruction T-SQL individuel à être interprété comme une transaction

Troisièmement, créer une transaction

--银行转账业务
DECLARE @ZHA INT=11004,@ZHB INT=11005,@Money INT=10,@errorSum INT=0
BEGIN TRANSACTION
 BEGIN
  UPDATE [User] SET CurrentMoney-=@Money WHERE ID=@ZHA
  SET @errorSum+=@@ERROR  --对错误进行累计
  UPDATE [User] SET CurrentMoney+=@Money WHERE ID=@ZHB
  SET @errorSum+=@@ERROR
  IF(@errorSum>0)
    BEGIN
	 PRINT '转账失败!'
	 ROLLBACK TRANSACTION ---事务回滚
	END
  ELSE
    BEGIN
	 PRINT '转账成功!'
	 COMMIT TRANSACTION ----事务提交
	END
 END

grammaire

  1. Début de la transaction

    BEGIN TRAN[SACTION]
    
  2. Valider la transaction

    COMMIT TRANSACTION
    
  3. Annuler la transaction (rétractation de transaction)

    ROLLBACK TRANSACTION
    

Une fois que la transaction est validée ou annulée, la transaction est terminée

La clé de transaction en question 3.1

Des affaires INSERT, UPDATE, DELETE est suivi en temps réel

3,2 Procédé pour déterminer si une erreur d'exécution de l'instruction

  1. Utilisation de l'erreur des variables globales
  2. @@ ERROR ne déterminer si le courant exécuter une instruction T-SQL est erronée
  3. Afin de déterminer si la transaction dans toute instruction T-SQL est erronée, il peut être l'erreur cumulative

Quatrièmement, les affaires d'utilisation

CREATE PROC sp_BankZhuanZhang
@ZHA INT,
@ZHB INT,
@Money INT
AS
DECLARE @errorSum INT=0
 BEGIN TRAN
  BEGIN
     UPDATE [User] SET CurrentMoney-=@Money WHERE ID=@ZHA
  SET @errorSum+=@@ERROR
  UPDATE [User] SET CurrentMoney+=@Money WHERE ID=@ZHB
  SET @errorSum+=@@ERROR
  IF(@errorSum>0)
    BEGIN
	 PRINT '转账失败!'
	 ROLLBACK TRANSACTION ---事务回滚
	END
  ELSE
    BEGIN
	 PRINT '转账成功!'
	 COMMIT TRANSACTION ----事务提交
	END
 END
EXEC sp_BankZhuanZhang '11004','11005','20'
Publié 121 articles originaux · a gagné les éloges 240 · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/chonbi/article/details/104837204
conseillé
Classement