Quel est l'équivalent de SQL Server Transactions dans DB2?
Ce qui est l'équivalent au suivant les instructions SQL Server dans DB2?
- Begin Transaction
- Commit Transaction
- Rollback Transaction
Vous voulez sans doute de préciser dans la question de savoir si vous avez l'intention de DB2 sur LUW ou DB2 sur z/OS ou iSeries. Pourrait aider des gens qui trébuchent à travers de ce.
OriginalL'auteur Bo Schatzberg | 2009-04-30
Vous devez vous connecter pour publier un commentaire.
Voir ici pour un exemple. Mais, fondamentalement,
OriginalL'auteur Preet Sangha
La réponse est effectivement un peu plus compliqué que ce qui est indiqué ici. Vrai, les transactions sont ANSI standardisés, et DB2 peut les soutenir.
DB2 pour z/OS peuvent être une très bête différente de l'autre des variantes (LUW, Linux-Unix-Windows, le plus souvent). Au risque de glisser dans une diatribe, ce qui rend l'idée de parler DB2 presque inutile. Vous parler d'une variante spécifique d'IBM base de données, mais ce qui fonctionne dans l'un peut être complètement invalide dans un autre. Je vais supposer que ce qui est de la saveur, l'OP a l'aide n'était pas le z/OS, depuis le
BEGIN TRANSACTION
réponse a été acceptée.Pour ceux d'entre vous qui trébuchent à travers cette d'utiliser des transactions avec DB2 z/OS, voici le récapitulatif: DB2 pour l'unité centrale n'a pas de transactions explicites. Il n'y a pas de
BEGIN TRANSACTION
ou de tout autre comparable construire. Les Transactions sont commencé implicitement (généralement considérée comme une unité de travail dans les docs) et validée ou annulée explicitement (habituellement, de nombreux outils d'interface graphique, comme le Crapaud, d'avoir une validation automatique fonctionnalité qui peut se faufiler sur vous de temps en temps).De la 9.1 z/OS SQL manuel de référence (page 28); disponible à http://www-01.ibm.com/support/docview.wss?uid=swg27011656#manuals):
"Une unité de travail est mis en œuvre lorsqu'une application est lancée. Une unité de travail
est également engagée lors de la précédente unité de travail est terminée par quelque chose d'autre que
la fin du processus de demande. Une unité de travail est terminée par une opération de validation,
une restauration complète de l'opération, ou à la fin d'un processus de demande. Un commit ou rollback
l'opération n'affecte que la base de données les modifications apportées au sein de l'unité de travail à la fin."
La chose la plus proche que vous obtenez lors de l'écriture de scripts est de spécifier manuellement un point de sauvegarde.
Ces ressembler à ceci:
Superficiellement, ils ressemblent aux transactions explicites, mais ils ne le sont pas. Au lieu de cela, ils sont vraiment juste des points dans le temps au sein d'une seule transaction implicite. Pour de nombreuses fins, ils peuvent suffire, mais il est important d'être conscient des différences conceptuelles.
Pas vraiment familier avec l'iSeries saveur, mais je pense que la réponse est oui. La version 5 du manuel (http://www-01.ibm.com/support/docview.wss?uid=swg27008735; celui que j'ai été capable de trouver le plus rapide) a le même verbiage que j'ai cité ci-dessus à la page 23.
Je pense que ce doit être marqué comme réponse correcte.
OriginalL'auteur Michael
Si vous utilisez un IDE comme Intellij Idea (ou d'autres), alors vous n'avez pas la possibilité de démarrer explicitement une transaction. En d'autres termes vous ne pouvez pas taper 'begin transaction" dans la console de votre IDE.
Mais vous pouvez désactiver l'Auto-commit "(et la réactiver plus tard) puis tapez "commit" ou "annuler" dans la console.
Dans l'IDÉE il y a aussi un bouton pour "s'engager" et un bouton "annuler".
Voir les copies d'écran ci-joint.
OriginalL'auteur Rudy Vissers