ms sql 2005 Insert,update,delete触发器类型判断问题?

海会圣贤 2010-09-13 09:20:11
我想创建这样的触发器:


Create Trigger tr_PCard
On P_Card
for Insert,Update,Delete

if update --如果UPDATE执行一下程序
begin
...
end

if insert --如果INSERT执行一下程序
begin
...
end

if delete
begin
...
end



但请问,insert,update,delete这些类型怎么判断啊?
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ws_hgo 的回复:]

SQL code
Create Trigger tr_PCard
On P_Card
for Insert,Update,Delete

if exists(select * from updated)
begin
...
end

if exists(select * from inserted)
begin ……
[/Quote]
up
hao1hao2hao3 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]
SQL code
Create Trigger tr_PCard On P_Card
for Insert,Update,Delete
as
if exists(select 1 from inserted) and not exists(select 1 from deleted)--insert触发器
begin
...
end ……
[/Quote]

这个好像更严谨一点。

水族杰纶 2010-09-13
  • 打赏
  • 举报
回复
Create Trigger tr_PCard On P_Card
for Insert,Update,Delete
as
if exists(select 1 from inserted) and not exists(select 1 from deleted)--insert触发器
begin
...
end
else if exists(select 1 from inserted) and exists(select 1 from deleted)--update触发器
begin
...
end
else --deleted触发器
begin
...
end
bancxc 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ws_hgo 的回复:]
SQL code
Create Trigger tr_PCard
On P_Card
for Insert,Update,Delete

if exists(select * from updated)
begin
...
end

if exists(select * from inserted)
……
[/Quote]
ws_hgo 2010-09-13
  • 打赏
  • 举报
回复
Create Trigger tr_PCard 
On P_Card
for Insert,Update,Delete

if exists(select * from updated)
begin
...
end

if exists(select * from inserted)
begin
...
end

if exists(select * from deleted)
begin
...
end

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧