Eu tenho algumas ALTER TABLE
declarações que estou executando. Nem todos eles funcionam (eles são o resultado da execução do SQL Data Compare) e quero agrupá-los em algumas transações e reverter as instruções se algo der errado.
Isso é possível ou são apenas dados que podem ser revertidos?
sql-server
t-sql
transaction
rollback
Piers Karsenbarg
fonte
fonte
Respostas:
fonte
SET XACT_ABORT ON
e uma finalCOMMIT TRAN
negar a necessidade dosTRY
blocos?Sim, isso é possível.
A maioria das instruções DDL pode ser revertida no SQL Server (existem algumas exceções, como
CREATE DATABASE
)fonte
Muitas alterações em uma transação com
rollback
ecommit
- não é um sonho. É possível.Aqui está um suporte para o seu script (seguindo as diretrizes da Microsoft com melhorias):
Cuidado,
THROW
funciona apenas para a versão SQL SERVER> 2012. Aqui você pode converter uma versão de semver para notação de ano : http://sqlserverbuilds.blogspot.ru (não tem conhecimento do.ru
domínio, existe uma versão em inglês)fonte
Você precisa examinar transações e manipulação de exceções no T-SQL. Confira os dois últimos exemplos nesta página: http://msdn.microsoft.com/en-us/library/ms175976.aspx
fonte