Ich habe einige ALTER TABLE
Aussagen, die ich laufe. Nicht alle von ihnen funktionieren (sie sind das Ergebnis der Ausführung von SQL Data Compare), und ich möchte sie in einigen Transaktionen gruppieren und die Anweisungen zurücksetzen, wenn etwas schief geht.
Ist dies möglich oder können nur Daten zurückgesetzt werden?
sql-server
t-sql
transaction
rollback
Piers Karsenbarg
quelle
quelle
Antworten:
quelle
SET XACT_ABORT ON
und ein letztesCOMMIT TRAN
die Notwendigkeit für dieTRY
Blöcke negieren ?Ja, das ist möglich.
Die meisten DDL-Anweisungen können in SQL Server zurückgesetzt werden (es gibt einige Ausnahmen wie
CREATE DATABASE
)quelle
Viele Änderungen in einer Transaktion mit
rollback
undcommit
- es ist kein Traum. Es ist möglich.Hier ist ein Gerüst für Ihr Skript (nach MS-Richtlinien mit Verbesserungen):
Seien Sie vorsichtig,
THROW
funktioniert nur für SQL Server - Version> 2012. Hier können Sie eine Version von konvertieren semver zu Jahr Notation : http://sqlserverbuilds.blogspot.ru (nicht bewusst.ru
Domain gibt es eine englische Version)quelle
Sie müssen sich mit Transaktionen und Ausnahmebehandlung in T-SQL befassen. Schauen Sie sich die letzten beiden Beispiele auf dieser Seite an: http://msdn.microsoft.com/en-us/library/ms175976.aspx
quelle