J'ai quelques ALTER TABLE
déclarations que je lance. Tous ne fonctionnent pas (ils sont le résultat de l'exécution de la comparaison de données SQL) et je veux les regrouper dans certaines transactions et annuler les instructions en cas de problème.
Est-ce possible ou s'agit-il uniquement de données pouvant être annulées?
sql-server
t-sql
transaction
rollback
Piers Karsenbarg
la source
la source
Réponses:
la source
SET XACT_ABORT ON
et une finaleCOMMIT TRAN
annulerait le besoin desTRY
blocs?Oui, c'est possible.
La plupart des instructions DDL peuvent être annulées dans SQL Server (il existe quelques exceptions telles que
CREATE DATABASE
)la source
Beaucoup de modifications en une seule transaction avec
rollback
etcommit
- ce n'est pas un rêve. C'est possible.Voici un échafaudage pour votre script (suivant les directives MS avec améliorations):
Attention,
THROW
ne fonctionne que pour la version SQL SERVER> 2012. Ici, vous pouvez convertir une version de semver en notation annuelle : http://sqlserverbuilds.blogspot.ru (ne connaissez pas le.ru
domaine, il existe une version anglaise)la source
Vous devez examiner les transactions et la gestion des exceptions dans T-SQL. Découvrez les deux derniers exemples sur cette page: http://msdn.microsoft.com/en-us/library/ms175976.aspx
la source