我有500多个需要在大型表上执行的SQL更新语句。更新语句只需几分钟即可为一个成员执行。截至目前,我必须停止&更新每个更新语句的每个部分。 如果可能的话,我需要以更有效的方式运行它们以加快完成过程。我有一个地址等的电子表格需要在表格中更新。
我需要更改PRBTADC,PRSTADCD和& STADDRCD要么; S-“CITY NAME”,F-“CITY NAME”,PF-CITY NAME“,P-”CITY NAME“。 理想情况下,我只想改变CUSTNMBR& “s,f,pf,p”状态一次而不是3个单独的行。
这是我正在做的一个例子
SELECT * FROM [N].[dbo].[RM00101]
where CUSTNMBR ='21'
SELECT * FROM [N].[dbo].[RM00102]
where CUSTNMBR ='21'
select
--a.*,
b.DEX_ROW_ID,a.PRBTADCD,a.PRSTADCD, a.STADDRCD, b.USERDEF1, b.*
from RM00101 a
inner join RM00102 b on a.CUSTNMBR = b.CUSTNMBR
where a.CUSTNMBR ='21'
update rm00102
set
ADRSCODE = left('PF-MISSOULA',15)
where
CUSTNMBR = '21'
and ADRSCODE = 'PRIMARY'
update RM00101
set
PRBTADCD = left('PF-MISSOULA',15)
where
CUSTNMBR = '21'
and ADRSCODE = 'PRIMARY'
update RM00101
set
PRSTADCD = left('S-WAREHOUSE',15)
where
CUSTNMBR = '21'
and ADRSCODE = 'PRIMARY'
update RM00101
set
STADDRCD = left('PF-MISSOULA',15)
where
CUSTNMBR = '21'
and ADRSCODE = 'PRIMARY'
任何帮助将不胜感激,因为这是一个繁琐的过程。
答案 0 :(得分:2)
为什么不在一个更新语句中更新多个列?像:
update RM00101
set ADRSCODE = left('PF-MISSOULA',15)
,PRBTADCD = left('PF-MISSOULA',15)
,PRSTADCD = left('S-WAREHOUSE',15)
,STADDRCD = left('PF-MISSOULA',15)
where CUSTNMBR = '21'
and ADRSCODE = 'PRIMARY'