Sap Hana Studio(SQL脚本)触发器上的条件更新

Sap Hana Studio(SQL脚本)触发器上的条件更新,sap,hana,sql-scripts,hana-sql-script,hana-studio,Sap,Hana,Sql Scripts,Hana Sql Script,Hana Studio,我有两个示例表: TABLE1: ID | COLUMN_B| COLUMN_C _________|_________|_________ 1 | 0 | 1 ________|_________|_________ 2 | 0 | 1 ________|_________|_________ 3 | 0 | 1 TABL

我有两个示例表:

    TABLE1:
      ID    | COLUMN_B| COLUMN_C
   _________|_________|_________
       1    |    0    |    1
    ________|_________|_________
       2    |    0    |    1
    ________|_________|_________
       3    |    0    |    1


    TABLE2:
      ID    | COLUMN_E| COLUMN_F
    ________|_________|________
       1    |    Y    |    X
    ________|_________|_________
       2    |    Y    |    X
    ________|_________|_________
       3    |    Y    |    X
我想做的是在Hana Studio上编写一个触发器,当表1中的B列被更新为特定值(比如100)时,使用SQL脚本更新表2中的E列。 表1中的行在表2中以第一列(ID)引用

我编写了以下代码:

create trigger "UPDATE_TABLES"
    after update of "COLUMN_B" on "TABLE1"
    referencing new row as new, old row as old
    for each row 
begin
    update "TABLE2"
    set "COLUMN_E" = 'my new value'
    where :old."COLUMN_B" = '100' and "TABLE1"."ID" = :old."ID";
end;

当我将第1行的TABLE1.COLUMN_B设置为100时,我希望代码将第1行的TABLE2.COLUMN_E更改为“我的新值”,但什么也没有发生。有人能指出我到底做错了什么吗

新手失误。我希望列_e值随列_b中值的更改而更改,但实际上我正在跟踪列_b中的旧值。更正为:

create trigger "UPDATE_TABLES"
    after update of "COLUMN_B" on "TABLE1"
    referencing new row as new, old row as old
    for each row 
begin
    update "TABLE2"
    set "COLUMN_E" = 'my new value'
    where :new."COLUMN_B" = '100' and "TABLE1"."ID" = :old."ID";
end;

成功了

我猜触发器代码中的UPDATE语句应该有如下细微的不同

create trigger "UPDATE_TABLES"
    after update of "COLUMN_B" on "TABLE1"
    referencing new row as new, old row as old
    for each row 
begin
    update "TABLE2"
    set "COLUMN_E" = 'my new value'
    where :new."COLUMN_B" = '100' 
    and TABLE2.ID = :old."ID";
end;
否则,在创建触发器时会出现语法错误
你能核实一下吗?

你完全正确。我只是在回答时把表1错当成了表2。