7

SQL Server Management Studio でテーブルを右クリックして [上位 200 行の編集] を選択すると、表示しているデータがロックされるのはどの時点ですか?

私の同僚は、この方法でデータを表示すると、データ行をロックできると述べました (行にカーソルを置いてデータの編集を開始すると彼が言ったときだと思います)。

このコンテキストでデータをロックできるのはこれだけですか?

4

3 に答える 3

5

それは真実ではない。このスクリプトを 1 つのウィンドウで実行します (実行したままにします)。

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テーブルを開き、そこにある 1 行の編集を開始します。スクリプトが更新を実行し続けることを確認します。

于 2011-12-22T10:52:38.063 に答える
2

SSMS GUI エディターでは、既定ではデータはロックされません。

変更を加えて保存しようとすると、上書き/破棄などのエラー/警告が表示されます。正確なメッセージを確認するために今すぐテストすることはできません。申し訳ありません。

于 2011-12-22T10:50:47.520 に答える