Tengo algunas ALTER TABLEdeclaraciones que estoy ejecutando. No todos funcionan (son el resultado de ejecutar SQL Data Compare) y quiero agruparlos en algunas transacciones y revertir las declaraciones si algo sale mal.
¿Es esto posible, o son solo datos que pueden revertirse?
sql-server
t-sql
transaction
rollback
Piers Karsenbarg
fuente
fuente

Respuestas:
fuente
SET XACT_ABORT ONY una finalCOMMIT TRANnegaría la necesidad de losTRYbloques?Si, esto es posible.
La mayoría de las declaraciones DDL se pueden revertir en SQL Server (hay algunas excepciones como
CREATE DATABASE)fuente
Muchas alteraciones en una transacción con
rollbackycommit- no es un sueño. Es posible.Aquí hay un andamio para su script (siguiendo las pautas de MS con mejoras):
Tenga cuidado,
THROWsolo funciona para la versión SQL SERVER> 2012. Aquí puede convertir una versión de notación de semver a año : http://sqlserverbuilds.blogspot.ru (no conoce el.rudominio, hay una versión en inglés)fuente
Debe analizar las transacciones y el manejo de excepciones en T-SQL. Vea los dos últimos ejemplos en esta página: http://msdn.microsoft.com/en-us/library/ms175976.aspx
fuente