在oracle中更改表中的多个列

sri*_*evi 6 sql oracle ddl alter-table

下面的两个脚本(用于改变表)是否会产生差异.. ??

脚本1:

alter table ACNT_MGR_HSTRY add DM_BTNUMBER DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_BTID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_USERID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_WSID DATA_TYPE ;
Run Code Online (Sandbox Code Playgroud)

脚本2:

alter table  ACNT_MGR_HSTRY
add
(
DM_BTNUMBER DATA_TYPE,  
DM_BTID DATA_TYPE,
DM_USERID DATA_TYPE,
DM_WSID DATA_TYPE
);
Run Code Online (Sandbox Code Playgroud)

将更新使差异.. ???

update OPERATIONAL_UNIT
 set ( BANK_ID=
 ENTY_CODE_ID=
 TIME_ZONE=
 DM_BTNUMBER=
 DM_BTID=
 DM_USERID=
 DM_WSID=
 );
 -----------
 update OPERATIONAL_UNIT set BANK_ID=;
 update OPERATIONAL_UNIT set ENTY_CODE_ID=;
 update OPERATIONAL_UNIT set TIME_ZONE=;
 update OPERATIONAL_UNIT set DM_BTNUMBER=;
 update OPERATIONAL_UNIT set DM_BTID=;
 update OPERATIONAL_UNIT set DM_USERID=;
 update OPERATIONAL_UNIT set DM_WSID=;
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 5

这两个例子是等价的.

我只是在第一个例子中使用了你的陈述; 如果在发生错误时使用第二个示例格式,我不知道您是否可能不会得到同样好的错误消息..加里迈尔斯证实了我的信念:

大致相同.例如,如果DM_WSID已经存在,则相关语句将失败.在脚本1中,您将添加三个列.在脚本2中你不会.如果您有DDL触发器或AUDIT,那么对于案例1,它们将被多次触发.脚本1将多次提交并且可以等待多次独占表锁定.