我有两张桌子。一张桌子是餐厅,另一张是restaurant_changes。餐厅包含属性,身份证,姓名,地址,城市,州,邮编。虽然restaurant_changes包含所有这些,但也包含时间戳。
每当对餐厅进行更改时,我都希望在restaurant_changes表中注明。它通过在更改之前存储时间戳和行的其余部分来实现。因此,如果餐馆名称在restaurant_changes中从A更改为B,则将存储名称A.
这是我正在尝试做的事情,我希望能够朝着正确的方向前进。
create trigger change_restaurant after update on restaurant
referencing old table as otab
referencing new table as tab
Declare @today DATETIME = SYSDATETIME()
for each row
insert into restaurant_changes
select(@today, otab.id, otab.name, otab.address, otab.city, otab.state, otab.zip
from otab
inner join ntab
on otab.id = ntab.id)
答案 0 :(得分:0)
看起来这就是你想要的(只是模仿你假设的语法):
create trigger change_restaurant after update on restaurant
referencing old as old
Declare @today DATETIME = SYSDATETIME()
for each row
insert into restaurant_changes values
(@today, old.id, old.name, old.address, old.city, old.state, old.zip)
参考old_table与'for each row'结合使用没有多大意义。如果你想使用old_table,你应该为每个语句声明'。