ບໍລິການ SQL 2005 intoduced ໃຫມ່ວິທີການເຮັດທຸລະກໍາຍ້ອນໃນ SQL Server ໄດ້ 2005
SET XACT_ABORT ON
ໃນເວລາທີ່ XACT_ABORT ແມ່ນກ່ຽວກັບການ. ງົບ T-SQL ອັດຕະໂນມັດຈະຍ້ອນເຮັດທຸລະກໍາໃນເວລາທີ່ຄວາມຜິດພາດເກີດຂຶ້ນໃນການລາຍງານ.
SET XACT_ABORT ON
USE Emp
ເລີ່ມຕົ້ນ Tran
ແຊກເຂົ້າໄປໃນຄ່າ EmpInfo(1)
ແຊກເຂົ້າໄປໃນຄ່າ EmpInfo(1) — ຄໍາຖະແຫຼງທີ່ຈະຍົກສູງບົດບາດຄວາມຜິດພາດທີ່ສໍາຄັນຕົ້ນຕໍນີ້
ແຊກເຂົ້າໄປໃນຄ່າ EmpInfo(2)
ຄໍາຫມັ້ນສັນຍາ Tran
ການສາຍທໍາອິດຂອງ statment ຈະປະຕິບັດໂດຍບໍ່ມີການຜິດພາດໃດໆ. ຄວາມຜິດພາດທີ່ສໍາຄັນຕົ້ນຕໍຈະຍົກສູງບົດບາດໃນການທັດທີ່ສອງ. ແຕ່ການຕັນທັງຫມົດຈະບໍ່ໄດ້ຮັບການ commited ເນື່ອງຈາກວ່າ XACT_ABORT ໃນຢູ່ໃນ.
You should note that XACT_ABORT terminates the current *batch*, not the entire command. Batches are separated with the GO keyword. Execution will continue at the beginning of the next batch.
ຄຸນນະສົມບັດນີ້ແມ່ນຍັງຢູ່ໃນ SQL Server 2000, ເຖິງແມ່ນວ່າມັນມີພຶດຕິເລັກນ້ອຍທີ່ແຕກຕ່າງສໍາລັບຄວາມຜິດພາດຕ່າງໆ.
ໃນ SQL 2000, ມີກໍລະນີບ່ອນທີ່ XACT_ABORT ບໍ່ສາມາດຍ້ອນການອັດຕະໂນມັດ.
ສໍາລັບການຍົກຕົວຢ່າງ:
ການແຊກເຂົ້າໄປໃນຊື່ຄໍລໍາທີ່ບໍ່ຖືກຕ້ອງ.
ການແຊກເຂົ້າໄປໃນສໍາຄັນຕົ້ນຕໍທີ່ມີ IDENTITY_INSERT OFF.
ປະຕິບັດ SELECT ທີ່ໃຊ້ບໍ່ມີຢູ່ແລ້ວເປັນ UDF.
ປະເພດເຫຼົ່ານີ້ຂອງຄວາມຜິດພາດປົກກະຕິແລ້ວເນື່ອງຈາກຄໍາສັ່ງພັນບໍ່ດີພໍ, ດັ່ງນັ້ນເຂົາເຈົ້າບໍ່ໄດ້ເກີດຂຶ້ນໃນການດໍາເນີນງານຂອງໂຄງການຂອງທ່ານໃນມື້ກັບມື້ເວັ້ນເສຍແຕ່ວ່າຜູ້ໃດຜູ້ຫນຶ່ງ alters schema ໄດ້. ແຕ່ຂ້າພະເຈົ້າກວມເອົາຄວາມເປັນໄປໄດ້ຂອງເຂົາເຈົ້າໃນເວລາທີ່ອະນຸຍາດຖານຂໍ້ມູນການປັບປຸງອັກສອນໃນເວລາທີ່ການນໍາໃຊ້ສະບັບໃຫມ່ຂອງໂຄງການ, ພຽງແຕ່ໃນກໍລະນີປະຕິບັດບໍ່ໄດ້ໄປເປັນການວາງແຜນ.
ມີວິທີການການຈັດການຄວາມຜິດພາດເຫລົ່ານີ້. ຄະນະກໍາມະຂອງທ່ານຄວນຈະຢູ່ໃນຊຸດການປະຕິບັດງົບ DML. ຫຼັງຈາກ batch ທີ່ (ຫຼັງຈາກທີ່ຄໍາ GO) ທ່ານສາມາດກວດສອບການ @@ TRANCOUNT ເພື່ອເຂົ້າໄປເບິ່ງຖ້າຫາກວ່າມັນເປັນຫຼາຍກ່ວາການສູນແລະກົດຫມາຍວ່າດ້ວຍຕາມຄວາມເຫມາະສົມ. ປົກກະຕິແລ້ວຍ້ອນການເຮັດທຸລະ.
ເຮັດທຸລະກໍາສາມາດເປີດກວ້າງຂະບວນການ, ດັ່ງນັ້ນທ່ານສາມາດປະຕິບັດ rollback ໃນ batch ຕໍ່ມາ.