Sql server 当使用触发器在另一个表上使用参数更新列时,更新一个表的列
我有两个表通过Sql server 当使用触发器在另一个表上使用参数更新列时,更新一个表的列,sql-server,Sql Server,我有两个表通过CustomerId建立了关系: 发票: Invoice | RouteCode | CustomerId 1001 | 1 | 90 1002 | 2 | 70 1003 | 3 | 80 CustomerId | CustomerName | RouteCode 90 | AAA | 1 70 | BBB | 2 80 | C
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
客户:
Invoice | RouteCode | CustomerId
1001 | 1 | 90
1002 | 2 | 70
1003 | 3 | 80
CustomerId | CustomerName | RouteCode
90 | AAA | 1
70 | BBB | 2
80 | CCC | 3
我想创建一个触发器,一旦发票中的RouteCode被更改,特定客户的客户中的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
我不知道这是否正确,因为在新的查询窗口中显示:
Msg 102,15级,状态1,程序更新代码,第2行“before”附近的语法不正确
create trigger UpdateRouteCode
发票上
更新
作为
开始
更新c
设置路由代码=i.RouteCode
从插入i
在i.CustomerId=c.CustomerId上内部加入客户c
其中i.RouteCode c.RouteCode
结束
创建触发器更新代码
发票上
更新
作为
开始
更新c
设置路由代码=i.RouteCode
从插入i
在i.CustomerId=c.CustomerId上内部加入客户c
其中i.RouteCode c.RouteCode
结束
您的触发器语法不属于SQL SERVER
我刚从这里的一个解决方案中得到它。您能告诉我如何更改它吗?如果一个客户
在发票
表中多次出现,并且只有一个客户路由代码
发生了更改,在这种情况下我们应该做什么?您的触发器语法不属于SQL SERVER
我只是从这里的一个解决方案中获得的。您能告诉我如何更改它吗?如果一个客户
在发票
表中多次出现,并且只有一个客户路线代码
被更改,我们应该做什么呢!工作正常,谢谢!它完全按照它应该的那样工作。