Locking
在 Sybase ASE 15.5 中鎖定表
我想鎖定一個表,只允許使用者在 Sybase ASE 15.5 中執行讀取操作,我該怎麼做?我嘗試了以下命令,但似乎有些混亂。任何的想法?
會話 A:執行以下命令,然後嘗試執行插入操作。新記錄仍然可以插入到鎖定的表中(但我認為它還沒有送出事務)。仍然可以從鎖定的表中選擇記錄。
begin transaction lock table testB in share mode
會話 B:無法從鎖定的表中選擇數據。
我認為你應該看看表的鎖定機制,它們有三種類型 - AllPages、Datapages 和 Datrows,你可以在以下位置閱讀更多關於它們的資訊:
如果您更改表的鎖定,則更新/刪除和選擇可以一起進行,而不會對提到的表造成任何阻塞。
在查詢內部,您可以根據以下連結中提到的這些選項將 noholdlock 放在表或其他選項上,以供其他使用者訪問/禁止訪問:
為了更詳細地回答您的問題,我們需要更清楚地說明問題。你的問題沒有解釋問題的細節。我希望上面有幫助。
如果您不希望使用者向表中插入數據 - 刪除該表上的插入/更新/刪除權限。
在事務中鎖定表的行為不同,這取決於它具有什麼樣的鎖定方案等。
詳細闡述你的場景。