【发布时间】:2010-01-04 16:36:19
【问题描述】:
我正在将 webapp 从 mysql 转换为 SQL Server。现在我想转换以下代码(这是一个简化版):
LOCK TABLES media WRITE, deleted WRITE;
INSERT INTO deleted (stuff) SELECT stuff FROM media WHERE id=1 OR id=2;
DELETE FROM media WHERE id=1 OR id=2;
UNLOCK TABLES;
因为我正在复制将要删除的内容,所以我想确保对“媒体”或“已删除”的任何读取都将等到整个操作准备好。否则这些读取将在几秒钟后看到不再存在的内容。
如何在 SQL Server 中复制此行为?我阅读了一些关于事务和隔离级别的页面,但我不知道是否可以禁用对表“媒体”和“已删除”(或行级别)的任何读取。
谢谢!
【问题讨论】:
标签: mysql sql-server locking transactions