2012-01-30 102 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。在它运行更新之前,它将获得一个锁。这可以是行,页面或表格锁定。然后它会执行更新并在更新提交后释放锁。