我在我的程序中宣布了一张表,如下所示:
Declare @resultTable Table
(
EmpId int,
EmpStatusId int,
CreatedDateTime datetime
)我执行一个删除功能:
Delete From ActualTable
Where Id = (Select EmpId from @resultTable with (nolock) where EmpStatusId = @tempId)我试图避免锁定select语句,以避免死锁,即使我读取了脏数据。但是,"with (nolock)“是不允许的。错误说:
与关键字'with‘附近的不正确语法。如果此语句是公共表表达式或xmlnamespaces子句,则必须用分号结束前面的语句。
有没有在临时表中应用NOLOCK的方法?
发布于 2012-09-28 04:30:02
我会问你是否问对了问题:
您拥有表变量(注意:它不是临时表,而是表变量),因此对它发出nolock没有意义。您似乎希望针对目标表ActualTable发出nolock,但是delete必须持有锁。句号。
处理大型删除操作的通常技术是在行范围内批量执行删除操作。
https://stackoverflow.com/questions/12633246
复制相似问题