Блокируются ли строки данных при их редактировании в SQL Server Management Studio 2008? - PullRequest
7 голосов
/ 22 декабря 2011

Когда я щелкаю правой кнопкой мыши по таблице в SQL Server Management Studio и выбираю «Редактировать 200 верхних строк», в какой момент, если вообще когда-нибудь, будут заблокированы данные, на которые я смотрю?

Мой коллега заявил, что при просмотре данных таким способом строки данных могут быть заблокированы (я думаю, когда он сказал, что вы наведете курсор на строку и начнете редактировать данные).

Это единственный раз, когда данные могут быть заблокированы в этом контексте?

Ответы [ 3 ]

5 голосов
/ 22 декабря 2011

Это не правда. Запустите этот скрипт в одном окне (и оставьте его запущенным):

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 и начните редактировать там одну строку. Обратите внимание, что сценарий продолжает выполнять обновления.

3 голосов
/ 23 февраля 2014

Может быть заблокировано. В панели редактирования попробуйте вставить строку и нарушить ограничение первичного ключа. Вы получите всплывающее сообщение об ошибке диалога. Теперь таблица будет заблокирована, пока вы читаете это сообщение. Если вы уйдете без подтверждения сообщения, эта таблица будет заблокирована на неопределенный срок. Я только что подтвердил это с SSMS 2008R2 и SSMS 2012.

2 голосов
/ 22 декабря 2011

Данные не будут заблокированы по умолчанию в редакторе графического пользовательского интерфейса SSMS.

Если вы внесете изменения и попытаетесь сохранить, вы получите ошибки / предупреждения о перезаписи / отбрасывании и т. Д. Сейчас я не могу проверить точные сообщения, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...