Mam kilka ALTER TABLE
instrukcji, które uruchamiam. Nie wszystkie z nich działają (są wynikiem uruchomienia porównywania danych SQL) i chcę je zgrupować w niektórych transakcjach i wycofać instrukcje, jeśli coś pójdzie nie tak.
Czy to możliwe, czy to tylko dane, które można przywrócić?
sql-server
t-sql
transaction
rollback
Piers Karsenbarg
źródło
źródło
Odpowiedzi:
źródło
SET XACT_ABORT ON
i ostatecznieCOMMIT TRAN
neguje potrzebęTRY
bloków?Tak, jest to możliwe.
Większość instrukcji DDL można wycofać w programie SQL Server (istnieje kilka wyjątków, takich jak
CREATE DATABASE
)źródło
Wiele alterings w jednej z transakcji
rollback
icommit
- to nie jest sen. To jest możliwe.Oto rusztowanie skryptu (zgodnie z wytycznymi MS z ulepszeniami):
Bądź ostrożny,
THROW
działa tylko dla wersji SQL SERVER> 2012. Tutaj możesz przekonwertować wersję z zapisu semver na rok : http://sqlserverbuilds.blogspot.ru (nie wiesz o.ru
domenie, istnieje wersja angielska)źródło
Musisz przyjrzeć się obsłudze transakcji i wyjątków w T-SQL. Sprawdź dwa ostatnie przykłady na tej stronie: http://msdn.microsoft.com/en-us/library/ms175976.aspx
źródło