首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表中的NOLOCK

表中的NOLOCK
EN

Stack Overflow用户
提问于 2012-09-28 03:33:44
回答 1查看 4.3K关注 0票数 5

我在我的程序中宣布了一张表,如下所示:

代码语言:javascript
复制
Declare @resultTable Table
(
  EmpId int,
  EmpStatusId int,
  CreatedDateTime datetime
)

我执行一个删除功能:

代码语言:javascript
复制
Delete From ActualTable
Where Id = (Select EmpId from @resultTable with (nolock) where EmpStatusId = @tempId)

我试图避免锁定select语句,以避免死锁,即使我读取了脏数据。但是,"with (nolock)“是不允许的。错误说:

与关键字'with‘附近的不正确语法。如果此语句是公共表表达式或xmlnamespaces子句,则必须用分号结束前面的语句。

有没有在临时表中应用NOLOCK的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-28 04:30:02

我会问你是否问对了问题:

您拥有表变量(注意:它不是临时表,而是表变量),因此对它发出nolock没有意义。您似乎希望针对目标表ActualTable发出nolock,但是delete必须持有锁。句号。

处理大型删除操作的通常技术是在行范围内批量执行删除操作。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12633246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档