Partager via


Types de transactions

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) prend en charge deux types de transactions : les transactions explicites et les transactions de validation automatique.

Transactions explicites

Une transaction explicite est une transaction dans laquelle vous définissez de manière explicite le début et la fin de la transaction. À cette fin, vous pouvez utiliser des instructions SQL ou des fonctions API de base de données.

Instructions SQL

SQL Server Management Studio permet d'utiliser les instructions SQL suivantes pour définir des transactions explicites :

  • BEGIN TRANSACTION
    Marque le point de départ d'une transaction explicite pour une connexion.
  • COMMIT TRANSACTION
    Termine une transaction correctement si aucune erreur n'est rencontrée. Toutes les données modifiées par la transaction deviennent partie intégrante de la base de données. Les ressources détenues par la transaction sont libérées.
  • ROLLBACK TRANSACTION
    Efface une transaction dans laquelle aucune erreur n'est rencontrée. L'état antérieur de toutes les données modifiées par la transaction est restauré. Les ressources détenues par la transaction sont libérées.

ADO.NET et OLE DB

Vous pouvez également utiliser des transactions explicites dans ADO.NET et OLE DB.

Dans ADO.NET, utilisez la méthode BeginTransaction sur un objet SqlCeConnection pour démarrer une transaction explicite. Pour terminer la transaction, appelez les méthodes Commit ou Rollback de l'objet SqlCeTransaction.

Dans OLE DB, appelez la méthode ITransactionLocal::StartTransaction pour démarrer une transaction. Appelez la méthode ITransaction::Commit ou ITransaction::Abort avec le paramètre fRetaining défini sur FALSE pour terminer la transaction sans en démarrer automatiquement une autre.

Remarque :
Vous pouvez créer plusieurs transactions sur une seule connexion ADO.NET et les affecter à des commandes séparées.
Important :
Lorsque vous validez des transactions à l'aide de l'API ADO.NET, tous les lecteurs de données et ensembles de résultats ouverts dans la transaction en question doivent être fermés.

Transactions de validation automatique

Le mode de validation automatique est le mode de gestion par défaut des transactions de SQL Server Compact Edition. À la fin de chaque instruction SQL, celle-ci est validée ou annulée. Une connexion SQL Server Compact Edition travaille en mode de validation automatique lorsque ce mode par défaut n'a pas été remplacé par des transactions explicites. Le mode de validation automatique est également le mode par défaut pour ADO.NET et OLE DB.

Une connexion SQL Server Compact Edition travaille en mode de validation automatique jusqu'à ce qu'une instruction BEGIN TRANSACTION démarre une transaction explicite. Lors de la validation ou de l'annulation de la transaction explicite, SQL Server Compact Edition repasse en mode de validation automatique.

Erreurs de compilation et d'exécution

Contrairement à Microsoft SQL Server, SQL Server Compact Edition ne traite pas les instructions par lots, mais une à la fois et exécute en outre chaque instruction individuellement. Si une instruction particulière renvoie une erreur, cela n'affecte en rien l'état des autres instructions incluses dans le lot. Par exemple, si vous utilisez SQL Server Management Studio pour exécuter l'ensemble de requêtes ci-dessous dans SQL Server Compact Edition, les deux premières requêtes sont exécutées correctement mais la troisième échoue en raison d'une erreur de syntaxe.

CREATE TABLE TestData (col int);

INSERT INTO TestData VALUES (1);

INSERTT INTO TestData VALUES (1);

Remarque :
Si ces requêtes étaient envoyées à SQL Server dans un lot, elles échoueraient toutes, car elles seraient analysées ensemble. L'erreur de syntaxe empêcherait alors SQL Server d'établir un plan d'exécution pour l'ensemble du lot.

Les transactions de niveau supérieur dans lesquelles une opération se déroule ne valident pas et n'annulent pas la transaction.

Voir aussi

Concepts

Transactions (SQL Server Compact Edition)
Contrôle des transactions
Transactions et connectivité

Aide et information

Assistance sur SQL Server Compact Edition