我正在尝试对表中的许多行进行一堆替换。我所做的并不是特别困难,但已被告知要考虑将来可能要花费很长时间的较大事务或更新。
因此,我需要考虑中断更新/事务以使其他查询等有机会运行。
所以我想用这个相当简单的任务问我该怎么做。
已建议将其作为Batch语句来执行,但我有点困惑如何继续。
UPDATE #tempresults
SET Col1 = REPLACE(Col1, 'A', '1');
UPDATE #tempresults
SET Col1 = REPLACE(Col1, 'B', '2');
UPDATE #tempresults
SET Col1 = REPLACE(Col1, 'C', '3');
UPDATE #tempresults
SET Col1 = REPLACE(Col1, 'D', '4');
以上与我要实现的目标类似,但是我需要一些指向我要寻找的东西。
如果之前已经问过这个问题,请指出我这个问题。如果需要我提供更多信息,请询问。
答案 0 :(得分:1)
您可能会先删除不必要的更新(第一个),然后将其余部分合并为一个更新。即:
UPDATE #tempresults
SET Col1 = REPLACE(REPLACE(REPLACE(Col15,
'B', '2'),
'C', '3'),
'D', '4');
您还需要确保您的更新确实不需要where子句?如果这不是一项一次性的工作,您可能会考虑定义一个自动为您计算的计算列。