2011-12-22 6 views
5

SQL Server Management Studio에서 테이블을 마우스 오른쪽 단추로 클릭하고 'Edit top 200 rows'를 선택하면 어떤 시점에서보고있는 데이터가 잠길 수 있습니까?SQL Server Management Studio 2008에서 데이터 행을 편집 할 때 데이터 행이 잠겨 있습니까?

내 동료는 데이터를이 방식으로 볼 때 데이터 행을 잠글 수 있다고 말했습니다. 행에 커서를 놓고 데이터를 편집하면 데이터가 잠길 수 있습니다.

이 상황에서 데이터를 잠글 수있는 유일한 시간입니까?

답변

5

사실이 아닙니다. 메시지 탭에서 Updated (당신이 결과 "로 설정하고 가정을

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 열의 값을 화나게하고, 인쇄 : 하나 개의 창에서이 스크립트를 실행 (실행두고) 그리드").

그런 다음 SSMS의 다른 인스턴스에서 Tx 테이블을 열고 거기에있는 단일 행 편집을 시작하십시오. 스크립트가 계속 업데이트를 수행하는지 확인하십시오.

+0

Damien과 gbn 모두에게 감사드립니다. 나는 둘 다 받아 들인 것으로 표시하고 싶다. 데이터 편집시 SSMS에서 어떤 일이 일어나는지 증명할 수있는 SQL 스크립트가 제공되어 Damien을 수락합니다. 하지만 둘 다 똑같이 감사합니다. –

2

데이터는 SSMS GUI 편집기에서 기본적으로 잠기지 않습니다.

변경하고 저장하려고하면 오류/경고 ato 덮어 쓰기/삭제 등의 오류 메시지가 표시됩니다. 정확한 메시지를 보려면 지금은 테스트 할 수 없습니다.

+0

오류/경고 대화 상자 중 일부가 실제로 잠금을 유발할 수있는 것 같습니다. 새 대답에이를 자세히 설명했습니다. – TTT

1

잠글 수 있습니다. 편집 패널에서 행을 삽입하고 기본 키 제약 조건을 위반하십시오. 오류 대화 상자 팝업 메시지가 나타납니다. 그 메시지를 읽는 동안 테이블이 잠길 것입니다. 메시지를 확인하지 않고 떠나면 해당 테이블이 무기한 잠기 게됩니다. 방금 SSMS 2008R2와 SSMS 2012에서 확인했습니다.

+0

조금 무서워. 다행스럽게도 우리 팀에서 대화를 열어 둘 사람이 없었습니다! (나는 희망한다 :)) 이것을 증명하는 노력에 가기 위해 감사드립니다. 매우 감사. –