Archiver

ເຮັດ​ທຸ​ລະ​ກໍາ​ຍ້ອນ​ໃນ SQL Server 2005

ບໍ​ລິ​ການ 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 ໃນ​ຢູ່​ໃນ.

1 ຄໍາ​ຄິດ​ຄໍາ​ເຫັນ​ກັບ​ຍ້ອນ​ເຮັດ​ທຸ​ລະ​ກໍາ​ໃນ SQL Server 2005

  • noreply@blogger.com (Todd)

    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 ຕໍ່​ມາ.

ອອກ​ຈາກ Reply ເປັນ

ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້ tags HTML ເຫຼົ່າ​ນີ້

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