SQL Server 2005 újonnan debütált az utat visszagörgetés a tranzakciók SQL Server 2005
SET XACT_ABORT ON
ha XACT_ABORT van. A T-SQL automatikusan rollback az ügylet során hiba történt nyilatkozatok.
SET XACT_ABORT ON
USE Emp
Kezdete Tran
Helyezze be EmpInfo értékek(1)
Helyezze be EmpInfo értékek(1) — Ez a megállapítás növeli az elsődleges kulcs hiba
Helyezze be EmpInfo értékek(2)
Commit Tran
Az első sor a nyilatkozat hajt végre hiba nélkül. Az elsődleges kulcs hiba emelni a második sorban. De az egész blokk tranzakciót nem lehet kötelezettséget vállalni, mert a XACT_ABORT részt.
Érdemes megjegyezni, hogy XACT_ABORT megszűnik a jelenlegi * köteg *, nem a teljes parancsot. Tételek egymástól a GO kulcsszó. Végrehajtási továbbra elején a következő tétel.
Ez a funkció is, az SQL Server 2000, bár kicsit másképp viselkedik a különböző hibák.
Az SQL 2000, vannak olyan esetek, amikor XACT_ABORT nem visszagörgetési a tranzakció automatikusan.
Például:
Behelyezése egy érvénytelen oszlop neve.
Behelyezése egy elsődleges kulcsot IDENTITY_INSERT OFF.
Végrehajtása SELECT, amely egy nem létező UDF.
Az ilyen típusú hibák rendszerint miatt rosszul szerzője parancs, így nem fordul elő a napról-napra működését a program, ha valaki megváltoztatja a sémát. De figyelembe a lehetőséget, ha a szerzői adatbázis frissítés scriptek telepítésekor egy új változata a projekt, csak abban az esetben telepítés nem megy a tervek szerint.
Több lehetőség is van kezelni ezeket a hibákat. A COMMIT kell a tételt végző DML nyilatkozatok. Miután a tétel (után a GO kulcsszó) ellenőrizni tudja a @ @ TRANCOUNT, hogy ha ez nagyobb, mint nulla és ennek megfelelően járnak el. Általában ROLLBACK a tranzakció.
Tranzakciók span tételek, így végre visszaállítását egy későbbi gyártási.