開始使用免費開始

使用 READ UNCOMMITTED 隔離等級

有一位新客戶到你的銀行要開戶。你把她的資料輸入系統,於是觸發了如下這段腳本開始執行:

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 之前就開始執行。

怎麼會這樣?

本練習屬於課程

SQL Server 的交易與錯誤處理

檢視課程

練習說明

  • 設定 READ UNCOMMITTED 隔離等級。
  • customers 資料表查詢 first_namelast_nameemailphone

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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

	-- Select first_name, last_name, email and phone
	SELECT
    	___, 
        ___, 
        ___,
        ___
    FROM customers;
編輯並執行程式碼