Здравствуйте 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, если у тебя всего одна запись в транзакции участвует?