2011-12-22 10 views
5

SQL Server Management Studioでテーブルを右クリックし、「トップ200行を編集」を選択すると、いつでも、私が見ているデータがロックされますか?SQL Server Management Studio 2008でデータ行を編集するときに、データ行がロックされていませんか?

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

これはデータがこのコンテキストでロックできる唯一の時間ですか?

答えて

5

これは正しくありません。あなたがで結果」に設定していると仮定すると(

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を印刷します:1つのウィンドウでこのスクリプトを実行します(そして実行中のままにします)グリッド")。

次に、SSMSの別のインスタンスでは、Txテーブルを開いてそこの単一行の編集を開始します。スクリプトが更新を引き続き実行することを確認します。

+0

あなたの答えはDamienとgbnの両方に感謝します。私は受け入れられたものとして両方をマークしたいと思います。データの編集時にSSMSで何が起こるかを証明するのに役立つSQLスクリプトが提供されているので、私はDamienを受け入れます。しかし、皆さんのおかげです。 –

2

データはSSMS GUIエディタではデフォルトでロックされません。

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

+0

実際にはエラー/警告ダイアログの一部がロックを引き起こす可能性があります。 – TTT

1

ロックすることができます。編集パネルで、行を挿入して主キー制約に違反してみてください。エラーダイアログのポップアップメッセージが表示されます。あなたはそのメッセージを読んでいる間、テーブルはロックされます。メッセージを確認せずに立ち去ると、そのテーブルは無期限にロックされます。私はSSMS 2008R2とSSMS 2012の両方でこれを確認しました。

+0

これは少し怖いです。幸いなことに、私たちのチームには、そのようなダイアログを開いたままにする人はいませんでした! (私は願って:))しかし、これを証明する努力に行ってくれてありがとう。とても有難い。 –

関連する問題