2012-01-30 53 views
0

在SQL Server中,我有一個包含10列的表,我想更新表中的特定列值,&我想在更新之前通過其他人無法更新表同時。前 - 我有兩個列名是id1 & id2,在任何時候只有一列將被更新,所以我想鎖只在該列,reamin列應該是免費的,其他用戶可以更新它。SQL Server 2008中的列級鎖定

+1

你的問題是什麼? – wallyk 2012-01-30 07:50:52

+1

您是否正在討論在單個「UPDATE」語句期間是否應用了鎖定,或者您是在談論某種「應用程序級別」功能,其中用戶正在幾分鐘/小時內檢查並編輯列中的值? – 2012-01-30 07:53:24

+1

SQL Server的'UPDATE'語句將自動**導致行級更新鎖.....所以你還需要什麼? – 2012-01-30 08:35:19

回答

3

SQL Server中的最低級別鎖定是行鎖定;你不能鎖定每列。

對於update,SQL Server自行處理locking。在它運行更新之前,它將獲得一個鎖。這可以是行,頁面或表格鎖定。然後它會執行更新並在更新提交後釋放鎖。