问题描述
|
我有一个表,该表具有26列,其中包含数千条记录。
有没有一种方法可以批量更新此表?
现在,我只对需要更新的每个列进行标准更新。
例如。
update mytbl
set col1 = replace(....)
update mytbl
set col1 = col1 + \"xyz\"
update mytbl
set col2 = \"test...\"
我知道,对于每个记录,上面的语句将先更新所有记录的列,然后再转到下一个列。
我正在寻找“快速批量更新”,因为这花了太长时间。
谢谢
解决方法
您可以使用以下结构:
UPDATE myTable
SET col1 = REPLACE(col1.....),col2 = \'some value\'
,1-几千条记录x 26个字段不是很大:)
2-使用ck建议的多字段更新语法,或将其插入可能更快的新表中:
SELECT (REPLACE(col1...)) as Col1,\'Some Value\' as Col2,...
INTO MyNewTable
FROM MyOldTable
,这些建议对于大量记录更有用,但无论如何可能会有所帮助:
1.按照ck的建议使用多字段更新
如果可能,请在更新过程中锁定表以进行独占访问。
禁用所有索引。更新完成后将其还原。
,请注意以下几点。
您可以使用SQL事件探查器来检查在更新过程中是否有任何触发器在做某事。
您可以禁用索引。现在运行测试,最后将其还原。