锁定SQL表一段时间

时间:2010-10-22 05:37:50

标签: sql

我们正在尝试在此处测试基于SQL 2005的新软件。 我们希望看到当插入/更新期间软件正在使用的某个表被锁定时它将如何响应。

在SQL 2005中有没有办法可以模拟这个? 这样我们就可以看到我们如何处理前端的错误了?

2 个答案:

答案 0 :(得分:31)

在SQL Server Management Studio中,运行此TSQL脚本(将超时设置为适合您的任何内容)

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

答案 1 :(得分:5)

使用其他会话,

  1. 执行BEGIN TRANSACTION

  2. 致电UPDATE table set columnName = columnName

  3. 运行测试

  4. 验证结果

  5. COMMIT TRAN / ROLLBACK TRAN交易