2025 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2025-01-22 17:42
ถ้า เรา มีคำสั่ง SQL มากกว่าหนึ่งคำสั่งในการดำเนินการใน ขั้นตอนการเก็บ และ เรา ต้องการย้อนกลับการเปลี่ยนแปลงใด ๆ ที่ทำโดยคำสั่ง SQL ใด ๆ ในกรณีที่เกิดข้อผิดพลาดเนื่องจากหนึ่งในคำสั่ง SQL เราสามารถใช้ธุรกรรมในขั้นตอนการจัดเก็บได้.
ขั้นตอนการจัดเก็บทำงานในธุรกรรมหรือไม่?
ซ้อนกัน ขั้นตอนการจัดเก็บ เป็น ถูกประหารชีวิต ใน ธุรกรรม บริบทของชั้นนอกสุด ขั้นตอนการเก็บ . นี่คือการตั้งค่าเริ่มต้น. ให้การทำงานเริ่มต้นที่อธิบายไว้ข้างต้น นั่นคือ คำสั่ง SQL ทั้งหมดใน a กระบวนงานที่เก็บไว้ดำเนินการ เป็นโสด ธุรกรรม บล็อก.
ข้างบนนี้ เราสามารถใช้ commit ในโพรซีเดอร์ได้ไหม? โดยทั่วไปแล้ว ขั้นตอน ไม่ควร ให้สัญญา . ถ้าคุณ ให้สัญญา ภายในห้องเก็บของ ขั้นตอน คุณกำลังจำกัดความสามารถในการนำกลับมาใช้ใหม่ได้เนื่องจากผู้โทรที่ต้องการเปลี่ยน ขั้นตอน ทำให้เป็นส่วนหนึ่งของธุรกรรมที่ใหญ่ขึ้น ไม่สามารถเรียกง่ายๆ ได้ว่า ขั้นตอน โดยตรง.
เราสามารถใช้ทรานแซกชันในฟังก์ชัน SQL ได้หรือไม่?
1 คำตอบ นั่นเป็นเหตุผลที่ การทำธุรกรรม ไม่จำเป็นสำหรับ sql -เซิร์ฟเวอร์ ฟังก์ชั่น . อย่างไรก็ตาม คุณ สามารถ เปลี่ยน ธุรกรรม ระดับการแยกตัว ตัวอย่างเช่น คุณอาจ ใช้ คำใบ้ของ NOLOCK ในการเข้าถึง "อ่านโดยไม่ผูกมัด" ธุรกรรม ระดับการแยกและอ่านข้อมูลที่ไม่ถูกผูกมัดจากผู้อื่น การทำธุรกรรม.
เราสามารถใช้ธุรกรรมที่ซ้อนกันใน SQL ได้หรือไม่ ถ้าใช่ แล้วอย่างไร?
SQL เซิร์ฟเวอร์ไม่รองรับจริงๆ ธุรกรรมที่ซ้อนกัน . มีเพียงหนึ่งเดียว ธุรกรรม ขณะนั้น. อันนี้ ธุรกรรม มีพื้นฐาน ธุรกรรมที่ซ้อนกัน เคาน์เตอร์ @@TRANCOUNT. แต่ละครั้งเริ่มต้นติดต่อกัน ธุรกรรม เพิ่มขึ้น NS นับทีละข้อ ทีละข้อ ธุรกรรม ลดมันลงหนึ่ง