หอจดหมายเหตุ

รายการย้อนกลับใน SQL Server 2005

SQL Server 2005 intoduced ใหม่วิธีการย้อนกลับการทำธุรกรรมใน SQL Server 2005

SET XACT_ABORT ON

เมื่อ XACT_ABORT อยู่บน. งบ T - SQL จะย้อนกลับโดยอัตโนมัติเมื่อการทำธุรกรรมเกิดข้อผิดพลาดในงบ.

SET XACT_ABORT ON

การใช้พนักงาน
เริ่มต้นทราน
แทรกค่า EmpInfo(1)
แทรกค่า EmpInfo(1) — คำสั่งนี้จะยกข้อผิดพลาดของคีย์หลัก
แทรกค่า EmpInfo(2)
Tran กระทำ

บรรทัดแรกของคำสั่งจะดำเนินการได้โดยไม่ต้องผิดพลาดใด ๆ. ข้อผิดพลาดคีย์หลักจะเพิ่มในบรรทัดที่สอง. แต่การทำธุรกรรมป้องกันทั้งหมดจะไม่ได้รับความมุ่งมั่นเพราะ XACT_ABORT ในเมื่อ.

1 ความคิดเห็นที่จะทำธุรกรรมย้อนกลับใน SQL Server 2005

  • noreply@blogger.com (ทอดด์)

    คุณควรทราบว่า XACT_ABORT สิ้นสุดชุด * * * * * * * * ปัจจุบัน, ไม่ได้คำสั่งทั้งหมด. batches จะแยกกับคำหลักไปที่. การดำเนินการจะยังคงที่จุดเริ่มต้นของชุดถัดไป.

    คุณลักษณะนี้ยังสามารถใน SQL Server 2000, แม้ว่ามันจะทำงานแตกต่างกันเล็กน้อยสำหรับข้อผิดพลาดต่างๆ.

    ใน SQL 2000, มีกรณีที่ล้มเหลวในการ XACT_ABORT ย้อนกลับรายการโดยอัตโนมัติ.

    เช่น:

    ใส่ลงในชื่อคอลัมน์ที่ไม่ถูกต้อง.

    ใส่ลงในคีย์หลักที่มี IDENTITY_INSERT OFF.

    การดำเนินการเลือกที่ใช้ UDF ที่ไม่มีอยู่จริง.

    ประเภทนี้ผิดพลาดมักจะเกิดจากคำสั่งที่เขียนไม่ดี, ดังนั้นพวกเขาจึงไม่ได้เกิดขึ้นในการดำเนินการแบบวันต่อวันของโปรแกรมของคุณจนกว่าจะมีคนเปลี่ยนสคีมา. แต่ฉันบัญชีสำหรับความเป็นไปได้ของพวกเขาเมื่อเขียนสคริปต์การปรับปรุงฐานข้อมูลเมื่อปรับรุ่นใหม่ของโครงการ, เพียงแค่ในการใช้งานกรณีที่ไม่ได้ไปตามแผนที่วางไว้.

    มีวิธีการจัดการข้อผิดพลาดเหล่านี้. ของคุณกระทำควรจะอยู่ในชุดการแสดงงบ dml ที่. หลังจากที่แบทช์ (หลังจากคำหลักไปที่) คุณสามารถตรวจสอบ @ @ TRANCOUNT เพื่อดูว่ามันมีค่ามากกว่าศูนย์และดำเนินการตาม. มักจะย้อนกลับการทำธุรกรรม.

    การทำธุรกรรม span สามารถกระบวนการ, เพื่อให้คุณสามารถดำเนินการย้อนกลับในชุดต่อมา.

ปล่อยให้ตอบกลับ

คุณสามารถใช้ เหล่านี้แท็ก

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