共用方式為


資料指標與鎖定

在 MicrosoftSQL Server Compact 4.0 中,資料指標定義中的 SELECT 陳述式必須遵守適用於任何其他 SELECT 陳述式的相同交易鎖定規則。任何 SELECT 陳述式 (包括資料指標定義中的 SELECT 陳述式) 所取得的交易鎖定都由下列控制:

  • 連接的交易隔離層級設定。

  • FROM 子句所指定的任何鎖定提示。

只有對於基底資料表或索引資料指標,交易隔離層級才可能影響取得的鎖定。

重要

對於 READ COMMITTED 的預設隔離層級,SQL Server Compact 4.0 在定位及讀取資料的時候並不會取得鎖定。READ COMMITTED 中的資料指標需要一個 Sch-S 鎖定,才可以在資料指標開啟時保護結構描述的穩定性。如果變更資料,就會採取獨佔鎖定。

這類鎖定會保持到目前的交易對於資料指標與獨立 SELECT 陳述式都結束為止。

取得鎖定

雖然資料指標以及關於取得交易鎖定類型的獨立 SELECT 陳述式都要遵守同樣的規則,但這些鎖定會在不同的時間取得。獨立的 SELECT 或資料指標所產生的鎖定,總是在需要某個資料列的時候取得。對於獨立的 SELECT,所有的資料列都是在執行此陳述式的時候加以擷取。不同類型的資料指標會在不同的時間擷取資料列:

  • 靜態資料指標會在開啟此資料指標的時刻擷取整個結果集。這就會在開啟的時候鎖定結果集的各個資料列。

  • 索引鍵集驅動的資料指標會在開啟此資料指標的時候,擷取結果集的各個資料列之索引鍵。這就會在開啟的時候鎖定結果集的各個資料列。

  • 順向資料指標會等到提取資料列的時候才加以擷取。這要等到資料列被定位的時候才會取得鎖定。

請參閱

概念

資料指標類型

選擇資料指標類型

隱含資料指標轉換

更新索引鍵集驅動的資料指標