เราสามารถใช้ธุรกรรมในขั้นตอนการจัดเก็บได้หรือไม่?
เราสามารถใช้ธุรกรรมในขั้นตอนการจัดเก็บได้หรือไม่?

วีดีโอ: เราสามารถใช้ธุรกรรมในขั้นตอนการจัดเก็บได้หรือไม่?

วีดีโอ: เราสามารถใช้ธุรกรรมในขั้นตอนการจัดเก็บได้หรือไม่?
วีดีโอ: 7 วิธีป้องกัน ไม่ให้โดนดูดเงินออกจากบัญชี ใช้แอปธนาคาร ให้ปลอดภัย I ไม่อยากเงินหายจากบัญชี ต้องฟัง! 2024, อาจ
Anonim

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

ขั้นตอนการจัดเก็บทำงานในธุรกรรมหรือไม่?

ซ้อนกัน ขั้นตอนการจัดเก็บ เป็น ถูกประหารชีวิต ใน ธุรกรรม บริบทของชั้นนอกสุด ขั้นตอนการเก็บ . นี่คือการตั้งค่าเริ่มต้น. ให้การทำงานเริ่มต้นที่อธิบายไว้ข้างต้น นั่นคือ คำสั่ง SQL ทั้งหมดใน a กระบวนงานที่เก็บไว้ดำเนินการ เป็นโสด ธุรกรรม บล็อก.

ข้างบนนี้ เราสามารถใช้ commit ในโพรซีเดอร์ได้ไหม? โดยทั่วไปแล้ว ขั้นตอน ไม่ควร ให้สัญญา . ถ้าคุณ ให้สัญญา ภายในห้องเก็บของ ขั้นตอน คุณกำลังจำกัดความสามารถในการนำกลับมาใช้ใหม่ได้เนื่องจากผู้โทรที่ต้องการเปลี่ยน ขั้นตอน ทำให้เป็นส่วนหนึ่งของธุรกรรมที่ใหญ่ขึ้น ไม่สามารถเรียกง่ายๆ ได้ว่า ขั้นตอน โดยตรง.

เราสามารถใช้ทรานแซกชันในฟังก์ชัน SQL ได้หรือไม่?

1 คำตอบ นั่นเป็นเหตุผลที่ การทำธุรกรรม ไม่จำเป็นสำหรับ sql -เซิร์ฟเวอร์ ฟังก์ชั่น . อย่างไรก็ตาม คุณ สามารถ เปลี่ยน ธุรกรรม ระดับการแยกตัว ตัวอย่างเช่น คุณอาจ ใช้ คำใบ้ของ NOLOCK ในการเข้าถึง "อ่านโดยไม่ผูกมัด" ธุรกรรม ระดับการแยกและอ่านข้อมูลที่ไม่ถูกผูกมัดจากผู้อื่น การทำธุรกรรม.

เราสามารถใช้ธุรกรรมที่ซ้อนกันใน SQL ได้หรือไม่ ถ้าใช่ แล้วอย่างไร?

SQL เซิร์ฟเวอร์ไม่รองรับจริงๆ ธุรกรรมที่ซ้อนกัน . มีเพียงหนึ่งเดียว ธุรกรรม ขณะนั้น. อันนี้ ธุรกรรม มีพื้นฐาน ธุรกรรมที่ซ้อนกัน เคาน์เตอร์ @@TRANCOUNT. แต่ละครั้งเริ่มต้นติดต่อกัน ธุรกรรม เพิ่มขึ้น NS นับทีละข้อ ทีละข้อ ธุรกรรม ลดมันลงหนึ่ง