我的表有26列,有几千条记录。 有没有办法批量更新此表?
现在我只对每个需要更新的列进行标准更新。 E.g。
update mytbl
set col1 = replace(....)
update mytbl
set col1 = col1 + "xyz"
update mytbl
set col2 = "test..."
我知道,对于每条记录,上述语句将在转到下一列之前先更新所有记录的列。
我正在寻找“快速批量更新”,因为这需要太长时间。
由于
答案 0 :(得分:1)
您可以使用此结构:
UPDATE myTable
SET col1 = REPLACE(col1.....),
col2 = 'some value'
答案 1 :(得分:1)
1 - 几千条记录x 26个字段并不大:)
2 - 使用ck建议的多字段更新语法,或将其插入到可能更快的新表中:
SELECT (REPLACE(col1...)) as Col1,
'Some Value' as Col2,
...
INTO MyNewTable
FROM MyOldTable
答案 2 :(得分:0)
这些建议对于更多的记录更有用,但无论如何都可能有所帮助: 1.按照ck
的建议使用多字段更新如果可以在更新期间锁定表以进行独占访问。
禁用所有索引。更新完成后恢复它们。
答案 3 :(得分:0)
请注意以下几点。
您可以使用SQL事件探查器检查在更新过程中是否有任何触发器正在执行某些操作。
您可以禁用索引。立即运行测试,最后将其恢复。