如何在SQL Server 2005中回滚UPDATE查询?
我需要在SQL中执行此操作,而不是通过代码.
假设您有一个包含大约500万条记录的表和一个nvarchar(max)
填充了大量文本数据的列.您希望以尽可能最快的方式将此列设置为NULL
if SomeOtherColumn = 1
.
蛮力UPDATE
在这里不能很好地工作,因为它将创建大型隐式事务并永远占用.
一次进行小批量50K记录的更新有效,但在32核/ 64GB服务器上完成仍需要47个小时.
有没有办法更快地完成此更新?是否有任何神奇的查询提示/表格选项牺牲其他东西(如并发)以换取速度?
注意:创建临时表或临时列不是一个选项,因为此nvarchar(max)
列涉及大量数据,因此占用大量空间!
PS:是的,SomeOtherColumn
已经编入索引.