许多更新 - >一次更新?

时间:2017-06-16 17:45:32

标签: sql-server updates

我们每月收到一封来自其他公司的文件,我们需要将其调整到我们的数据库(在SQL Server中)。为此我们运行了几个需要很长时间的更新。

有没有办法转换"所有这些更新到一个语句中,所以它只在表中运行一次? (这是一张非常大的桌子!)。

我们现在正在使用这样的东西:

update Table1 set column01 = 0 where column01 = ' ' or column01 = '';
update Table1 set column02 = 0 where column02 = ' ' or column02 = '';
update Table1 set column03 = 0 where column03 = ' ' or column03 = '';
update Table1 set column04 = 0 where column04 = ' ' or column04 = '';
update Table1 set column05 = 0 where column05 = ' ' or column05 = '';
update Table1 set column06 = 0 where column06 = ' ' or column06 = '';
update Table1 set column07 = 0 where column07 = ' ' or column07 = '';
update Table1 set column08 = 0 where column08 = ' ' or column08 = '';
update Table1 set column09 = 0 where column09 = ' ' or column09 = '';
update Table1 set column10 = 0 where column10 = ' ' or column10 = '';
update Table1 set column11 = 0 where column11 = ' ' or column11 = '';
update Table1 set column12 = 0 where column12 = ' ' or column12 = '';
update Table1 set column13 = 0 where column13 = ' ' or column13 = '';
update Table1 set column14 = 0 where column14 = ' ' or column14 = '';
update Table1 set column15 = 0 where column15 = ' ' or column15 = '';
update Table1 set column16 = 0 where column16 = ' ' or column16 = '';
update Table1 set column17 = 0 where column17 = ' ' or column17 = '';
update Table1 set column18 = 0 where column18 = ' ' or column18 = '';
update Table1 set column19 = 0 where column19 = ' ' or column19 = '';

1 个答案:

答案 0 :(得分:0)

您可以像这样使用CASE ... WHEN

update Table1 set 
    column01 = CASE when column01 = ' ' or column01 = '' then 0 ELSE column01 END,
    column02 = CASE when column02 = ' ' or column02 = '' then 0 ELSE column02 END,
......
    column19 = CASE when column19 = ' ' or column19 = '' then 0 ELSE column19 END