เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การใช้ READ UNCOMMITTED isolation level

ลูกค้าใหม่เดินเข้ามาที่ธนาคารเพื่อเปิดบัญชี คุณบันทึกข้อมูลของเธอเข้าระบบ ทำให้สคริปต์ลักษณะนี้เริ่มทำงาน:

BEGIN TRAN

  INSERT INTO customers (first_name, last_name, email, phone)
  VALUES ('Ann', 'Ros', '[email protected]', '555555555')

  DECLARE @cust_id INT = scope_identity()

  INSERT INTO accounts (account_number, customer_id, current_balance)
  VALUES ('55555555555010121212', @cust_id, 150)

COMMIT TRAN

ในขณะเดียวกัน เพื่อนร่วมงานฝ่ายการตลาดกำลังส่งอีเมลหาลูกค้าทุกราย เพราะมีการจับรางวัลรถยนต์! สคริปต์ที่เขารันดึงข้อมูลลูกค้าทุกคน รวมถึงลูกค้าที่เพิ่งเพิ่มเข้าไปด้วย โดยสคริปต์นี้เริ่มทำงานหลังจาก INSERT แรกเสร็จสิ้น แต่ก่อนที่จะถึง COMMIT TRAN

เหตุใดจึงเป็นเช่นนั้น?

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Transactions and Error Handling in SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ตั้งค่า isolation level เป็น READ UNCOMMITTED
  • SELECT first_name, last_name, email และ phone จากตาราง customers

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___

	-- Select first_name, last_name, email and phone
	SELECT
    	___, 
        ___, 
        ___,
        ___
    FROM customers;
แก้ไขและรันโค้ด