Rollback Darījumi ar SQL Server 2005

SQL Server 2005 jauna ieviesta veids atcelšanu darījumiem SQL Server 2005

SET XACT_ABORT PAR

ja XACT_ABORT atrodas. T-SQL automātiski atcelšanu darījumu, ja kļūda deklarācijās.

SET XACT_ABORT PAR

LIETOŠANAS Emp
Sāciet Tran
Ievietojiet EmpInfo vērtības(1)
Ievietojiet EmpInfo vērtības(1) — Šis paziņojums radīs primārā atslēga kļūdu
Ievietojiet EmpInfo vērtības(2)
Apņemas Tran

Pirmajā rindā deklarāciju veiks bez kļūdām. Primārās atslēgas kļūdu izvirzīt otrajā līnijā. Bet viss bloks darījums netiks izdarīts, jo XACT_ABORT, kas par.

1 komentāru SQL Server atritināt Darījuma 2005

  • noreply@blogger.com (Todd)

    Jums jāņem vērā, ka XACT_ABORT izbeigt pašreizējo * partiju *, ne visai komandu. Partijas atdalītas ar GO atslēgvārda. Izpilde turpināsies, sākoties jaunajam partijas.

    Šī funkcija ir arī SQL Server 2000, lai gan tas uzvedas mazliet atšķirīgi dažādām kļūdām.

    SQL 2000, ir gadījumi, kad XACT_ABORT nav atritināt darījumu automātiski.

    Piemēram:

    Ievietošanas nederīgs kolonnas nosaukums.

    Ievietošanas primārā atslēga ar IDENTITY_INSERT OFF.

    Izpildes SELECT, kas izmanto neeksistējoša UDF.

    Šīs kļūdas tipu parasti rodas slikti autors komandu, tāpēc tie nav sastopami ikdienas ikdienas darbību jūsu programmas, ja kāds maina shēmu. Bet es vērā saistībā ar to iespēja, ja autorēšanas datubāzē atjauninājumu skriptus, izvēršot jaunā versija projekta, tikai gadījumā, ja izvietošanas nepārsniedz kā plānots.

    Ir veidi, kā rīkoties šīs kļūdas. Jūsu COMMIT jābūt partijas veicot BDL pārskati. Pēc partijas (Pēc GO atslēgvārda) Jūs varat pārbaudīt @ @ TRANCOUNT lai redzētu, vai tas ir lielāks par nulli un attiecīgi rīkoties. Parasti atritināt darījuma.

    Darījumi span partijām, lai jūs varētu izpildīt atcelšanu nākamajā partijā.

Atstāj atbildi

Jūs varat izmantot šo HTML tagus

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