Table User
Userid(number)
is_updated(char)
Table Version
Version_number(number)
userid(number)
现在,如果我在版本表中插入/更新值,我想使用触发器更新 is_updated 列,但是如何获取更新/插入行的用户 ID?
这是第一次使用触发器有人可以帮助我吗
Table User
Userid(number)
is_updated(char)
Table Version
Version_number(number)
userid(number)
现在,如果我在版本表中插入/更新值,我想使用触发器更新 is_updated 列,但是如何获取更新/插入行的用户 ID?
这是第一次使用触发器有人可以帮助我吗
在发布这样的问题之前,您可能应该查看有关CREATE TRIGGER语句的在线书籍文档。触发器只不过是一个特殊的存储过程,它继承了两个特殊的虚拟表,inserted和deleted。所以尝试这样的事情:
create trigger dbo.version_TR01
on dbo.version
for insert, update
as
begin
--
-- make sure everybody has a row in the user table
--
insert dbo.[user]( user_id , is_updated )
select i.user_id , 'F'
from inserted i
where not exists ( select *
from dbo.[user] u
where u.user_id = i.user_id
)
--
-- mark everybody as updated
--
update dbo.[user]
set is_updated = 'T'
from dbo.[user] u
join inserted i on i.user_id = u.user_id
end
那应该差不多了。