格式:
create trigger trigger_name
on {table|view}[WITH ENCRYPTION]
{FOR | AFTER | INSTEAD OF}{[insert][,][update][,][delete]}
as
[if update(column)]
[{and | or} update (column)]
sql_statement
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eg1: 删除:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
create tigger tr_delete
on table1
for delete
as
set nocount on
delete table2
where no in (select no from deleted)
go
其实:可以用级联删除来实现
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eg2: 修改:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
create trigger tri_upadate
on table1
for update
as
if update(Column)
update tables set column_value=(select Column from inserted) where
column=(select Column from deleted);
--------------------------------------------------------------------
其实 主要是inserted updated deleted 这些表用好了就基本上没有问题了
名称: |
説明 |
inserted |
更改后的数据保存在inserted表中 |
deleted |
原有数据保存在deleted表中 |
阅读(583) | 评论(0) | 转发(0) |