Re: Подскажите, как блокировать таблицы в MS SQL
От: Lexey Россия  
Дата: 14.02.02 11:37
Оценка:
Здравствуйте beginner, Вы писали:

B>Конкретно, как сделать так, чтобы пока крутится транзакция:

B>BEGIN TRANSACTION Trans1
B>DECLARE @ID1 int
B>SELECT @ID1 = [ID] FROM Table1 WHERE ...
B>IF NOT (@ID IS NULL)
B>INSERT INTO Table2 VALUES (@ID,...)
B>COMMIT TRANSACTION Trans1

B>В Table1 никто ничего записать не смог, и как блокировка потом снимается? Заранее спасибо!


Попробуй так:
BEGIN TRANSACTION Trans1
DECLARE @ID1 int
SELECT @ID1 = [ID] FROM Table1 WITH TABLOCK HOLDLOCK WHERE ...
IF NOT (@ID IS NULL) 
INSERT INTO Table2 VALUES (@ID,...)
COMMIT TRANSACTION Trans1


Только зачем тебе Table-level lock, если у тебя всего одна запись в транзакции участвует?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.