Tagastus Tehing SQL Server 2005

SQL Server 2005 äsja üleminekut tee rollback tehingute SQL Server 2005

SET XACT_ABORT ON

kui XACT_ABORT on. T-SQL avaldused automaatselt rollback tehinguna, kui viga vastuvõtmises.

SET XACT_ABORT ON

KASUTAMINE Emp
Alustada Tran
Lisada EmpInfo väärtused(1)
Lisada EmpInfo väärtused(1) — See avaldus tõstab primaarvõti viga
Lisada EmpInfo väärtused(2)
Commit Tran

1. rida Statement täidab ilma vigu. Primaarvõti viga tõstab teisel real. Aga kogu plokk tehing ei pühendunud sest XACT_ABORT sisse.

1 kommenteerima, et Rollback Tehing SQL Server 2005

  • noreply@blogger.com (Todd)

    Tasub meeles pidada, et XACT_ABORT lõpetab praeguse * partii *, mitte kogu käsk. Partiide eraldatud GO märksõna. Täitmine jätkub alguses järgmise partii.

    See funktsioon on ka SQL Server 2000, kuigi see käitub veidi erinevalt eri vigu.

    SQL 2000, on juhtumeid, kus XACT_ABORT ei rollback tehing automaatselt.

    Näiteks:

    Sisestamine sisse kehtetu veeru nimi.

    Sisestamine sisse primaarvõti koos IDENTITY_INSERT OFF.

    Täidesaatva SELECT, mis kasutab olematu UDF.

    Seda tüüpi vead on tavaliselt tingitud halvasti autoriks käsk, et nad ei esineda päev-päevalt tegevust oma programmi kui keegi muudab skeemi. Aga ma arvestab oma võimalust, kui authoring andmebaasi uuendada skripte kui rakendades uut versiooni projekt, igaks juhuks kasutusele ei lähe plaanipäraselt.

    On viise, kuidas hakkama need vead. Sinu COMMIT peaks olema partii täidab piirmäära avaldused. Pärast partii (pärast GO märksõna) saate vaadata @ @ TRANCOUNT näha, kui see on suurem kui null ja vastavalt tegutsema. Tavaliselt käsu ROLLBACK täitmisel tehingu.

    Tehinguid saab span partiid, nii saab käivitada rollback hilisema partii.

Jäta vastus

Võite kasutada neid HTML tags

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