Rollback tranzakció SQL Server 2005

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.

1 megjegyzést visszaállítása tranzakció SQL Server 2005

  • noreply@blogger.com (Todd)

    É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.

Hagy egy Válaszol

Használhatod ezeket a HTML elemek

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>