当我在 SQL Server Management Studio 中右键单击一个表并选择“编辑前 200 行”时,如果有的话,我正在查看的数据会在什么时候被锁定?

我的一个同事说,用这种方式查看数据时,可以锁定数据行(我想他说如果将光标放在一行上并开始编辑数据)。

这是唯一一次可以在此上下文中锁定数据吗?

最佳答案

这不是真的。在一个窗口中运行此脚本(并保持运行):

create table Tx (
    ID int not null,
    Val1 varchar(20) not null
)
go
insert into Tx (ID,Val1)
select 1,'abc'
go
set nocount on
while 1=1
begin
    update Tx set Val1 = CASE WHEN Val1='abc' then 'def' else 'abc' end
    RAISERROR('Updated',10,1) WITH NOWAIT
    WAITFOR DELAY '00:00:05'
end

每 5 秒,它翻转 Val1 列的值,并在消息选项卡中打印 Updated(假设您设置为“结果在网格中”)。

然后,在另一个 SSMS 实例中,打开 Tx 表并开始编辑其中的单行。观察脚本继续执行更新。

关于sql-server-2008 - 在 SQL Server Management Studio 2008 中编辑数据行时是否锁定数据行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8602685/

10-11 03:18
查看更多