如何解决删除SQL会锁定表以防止新数据插入到SQL Server 2005中吗?
| 如果我尝试从表中删除数据早午餐。说DELETE FROM myTable Where CreationDate < GetDate()
需要几个小时才能删除,此表是否将被锁定并且不会发生新的插入?
该表不会自我引用。我假设删除时仍可以插入新数据。删除sql会使用排他锁来阻止对表的所有访问吗?
谢谢
解决方法
您可以批处理它们,以防止其锁定整个表:
WHILE 1 = 1
BEGIN
DELETE TOP 10000 FROM myTable WHERE CreationDate < GetDate()
IF @@ROWCOUNT = 0
BREAK
END
,有很多事情可以改变这种行为。但是,如果您的意思是说超过5K记录,那么它可能会锁定。您可以通过使用较小的批次或指定不会锁定的隔离级别来避免这种情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。