開始使用免費開始

僅在部分資料列上防止幻讀

你需要分析一些銀行客戶的資料,範圍是 customer_id 介於 1 到 10。你只想鎖定 customers 資料表中 customer_id 在 1 到 10 之間的那些資料列。這樣做可以保證沒有人能變更這些資料列,同時也允許其他交易處理資料表中的其餘資料。

你需要再次選取這些客戶並執行一些數學運算。(本練習不著重於這些運算本身。)之後,你想再度選取 customer_id 介於 1 到 10 的客戶,確保沒有任何變動。

你要如何準備這段腳本?

本練習屬於課程

SQL Server 的交易與錯誤處理

檢視課程

練習說明

  • 設定合適的隔離層級以防止幻讀。
  • 開始一個交易。
  • 選取你想鎖定的那些客戶。
  • 提交交易。

動手互動練習

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

-- Set the appropriate isolation level
___ ___ ___ ___ ___

-- Begin a transaction
___ ___

-- Select customer_id between 1 and 10
SELECT * 
FROM customers
___ customer_id ___ ___ AND ___;

-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT * 
FROM customers
___ customer_id ___ ___ AND ___;

-- Commit the transaction
___ ___
編輯並執行程式碼