Заблокировать SQL-таблицу в течение определенного периода времени

Мы пытаемся протестировать наше новое программное обеспечение здесь, основанное на SQL 2005. Мы хотим видеть, как он будет реагировать, когда одна из таблиц, которые программное обеспечение использует во время вставки/обновления, блокируется.

Есть ли способ в SQL 2005, который мы можем имитировать? так что мы можем видеть, как мы можем справиться с ошибкой на лицевой стороне?

Ответ 1

В SQL Server Management Studio запустите этот TSQL script (установите тайм-аут на то, что вам подходит)

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO

BEGIN TRANSACTION

UPDATE table
SET ColumnName = ColumnName

WAITFOR DELAY '00:02:00'  -- 2 minutes   hh:mm:ss

-- Run your test while table is locked and delay is counting down

ROLLBACK TRANSACTION

Ответ 2

Используя другой сеанс,

  • Сделайте BEGIN TRANSACTION

  • Вызов UPDATE table set columnName = columnName

  • Запустите тест

  • Проверьте свои результаты

  • COMMIT TRAN / ROLLBACK TRAN транзакция