2011-12-22 14 views
5

SQL Server Management Studio'da bir tabloyu sağ tıklatıp 'En üst 200 satırı düzenle'yi seçtiğimde, baktığımda, baktığım veriler kilitlenecek? Bir meslektaşım, bir veriyi bu şekilde görüntülediğinde, veri satırlarının kilitlenebileceğini (sanırım bir satırda bir imleci koyar ve veriyi düzenlemeye başlarsanız söylendiğini düşünüyorum) belirtmişti.SQL Server Management Studio 2008'de düzenlerken veri satırları kilitlenir mi?

Bu, verilerin bu bağlamda kilitlenebildiği tek zamandır mı?

cevap

5

Bu doğru değil. mesajlar sekmesinde Updated (siz de sonuçların" olarak ayarlanmış varsayarsak

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 

Her 5 saniyede bir, bu Val1 sütunun değerini döndürür ve baskılar: tek bir pencerede bu komut dosyasını çalıştırın (ve koşma bırakın) Kafes"). Daha sonra, SSMS'nin başka bir örneğinde, Tx tablosunu açın ve oradaki tek sırayı düzenlemeye başlayın. Komut dosyasının güncellemeleri yapmaya devam ettiğini gözlemleyin.

+0

Cevaplarınız için Damien ve gbn'ye teşekkürler. İkisini de kabul edildi olarak işaretlemek istiyorum. Verileri düzenlerken SSMS'de neler olduğunu kanıtlamama yardımcı olabilecek SQL komut dosyası nedeniyle Damien'ı kabul edeceğim. Ama ikinize de eşit olarak teşekkürler. –

2

Veriler, varsayılan olarak SSMS GUI düzenleyicisinde kilitlenmez.

Değişiklikler yaparsanız ve kaydetmeyi denerseniz, üzerine yazma/atma gibi hatalar/uyarılar alırsınız. Tam iletileri görmek için şu anda test edemiyorum, üzgünüm.

+0

Bazı hataların/uyarı diyaloglarının aslında bir kilitlemeye neden olabileceği görülüyor. – TTT

1

Kilitlenebilir. Düzenleme Paneli'nde bir satır eklemeye ve Birincil Anahtar kısıtlamasını ihlal etmeye çalışın. Bir hata iletişim kutusu açılır. Bu mesajı okurken masa şimdi kilitlenecek. Mesajı onaylamadan çekerseniz, bu tablo süresiz olarak kilitlenir. Bunu sadece SSMS 2008R2 ve SSMS 2012 ile doğruladım.

+0

Bu biraz korkutucu. Neyse ki takımımızda kim böyle bir diyalog açık bırakacak hiç kimse yoktu! (Umarım :)) Bunu kanıtlamak için çaba gösterdiğiniz için teşekkürler. Çok takdir edildi. –