0
参数I具有2个表,通过CustomerId
具有关系:更新一个表的一列时,一个列被更新其它表使用触发器
发票:
Invoice | RouteCode | CustomerId
1001 | 1 | 90
1002 | 2 | 70
1003 | 3 | 80
顾客 :
CustomerId | CustomerName | RouteCode
90 | AAA | 1
70 | BBB | 2
80 | CCC | 3
我想创建一个触发器onc e发票中的RouteCode已更改,特定客户的客户中的路由代码将被更改。
例子:
发票:
Invoice | RouteCode | CustomerId
1001 | 2 | 90 (the RouteCode here has changed)
1002 | 2 | 70
1003 | 3 | 80
客户:
CustomerId | CustomerName | RouteCode
90 | AAA | 2 (the RouteCode here must change too)
70 | BBB | 2
80 | CCC | 3
我有这样的代码:
create trigger UpdateRouteCode
before update on Invoice
for each row
begin
if :new.RouteCode != :old.RouteCode
then
update Customer c
set c.RouteCode = :new.RouteCode
where c.CustomerId = :new.CustomerId
end
我不知道这是否是正确的,因为在新的查询窗口中它说:
消息102,级别15,状态1,过程UpdateRouteCode,行 '前' 2
附近有语法错误。
你触发语法不属于'SQL SERVER' –
我刚刚才从这里的解决方案之一。你能告诉我如何改变它吗? – Ibanez1408
如果一个'Customer'在'Invoice'表中多次出现并且只有一个客户'Routecode'在这种情况下发生了变化,我们应该怎么做 –