Locking

在 Sybase ASE 15.5 中鎖定表

  • December 29, 2020

我想鎖定一個表,只允許使用者在 Sybase ASE 15.5 中執行讀取操作,我該怎麼做?我嘗試了以下命令,但似乎有些混亂。任何的想法?

會話 A:執行以下命令,然後嘗試執行插入操作。新記錄仍然可以插入到鎖定的表中(但我認為它還沒有送出事務)。仍然可以從鎖定的表中選擇記錄。

begin transaction
lock table testB in share mode

會話 B:無法從鎖定的表中選擇數據。

我認為你應該看看表的鎖定機制,它們有三種類型 - AllPages、Datapages 和 Datrows,你可以在以下位置閱讀更多關於它們的資訊:

Sybase 中的鎖定機制

如果您更改表的鎖定,則更新/刪除和選擇可以一起進行,而不會對提到的表造成任何阻塞。

在查詢內部,您可以根據以下連結中提到的這些選項將 noholdlock 放在表或其他選項上,以供其他使用者訪問/禁止訪問:

控制隔離

為了更詳細地回答您的問題,我們需要更清楚地說明問題。你的問題沒有解釋問題的細節。我希望上面有幫助。

如果您不希望使用者向表中插入數據 - 刪除該表上的插入/更新/刪除權限。

在事務中鎖定表的行為不同,這取決於它具有什麼樣的鎖定方案等。

詳細闡述你的場景。

同時檢查這個http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc33621_33620_33619_1250/html/ptallbk/X20061.htm

引用自:https://dba.stackexchange.com/questions/213740