admin 管理员组文章数量: 887016
sql触发器(insert,update,delete)
--insert 触发器
create trigger tri_insert
on student
for insert
as
declare @student_id char(10) --定义一个变量
select @student_id=s.student_id from
student s inner join inserted i
on s.student_id=i.student_id
if @student_id='0000000001'
begin
end
go
--update触发器
create trigger tri_update
on student --将要进行更改的表名
for update
as
if update(student_id)
begin
end
go
--delete触发器
create trigger tri_delete
on student --将要进行更改的表名
for delete --给表删除一条数据的时候触发
as
declare @student_id varchar(10)
select @student_id=student_id from deleted
if @student_id='admin'
begin
end
而insert的时候道理一样,只不过是把要插入的数据放在inserted表中。
更新操作可以认为是执行了两个操作,先把那一行记录delete掉,然后再insert,这样update操作实际上就对deleted表和inserted表的操作,所以不会有updated表了,有的时候两个表是主外键关系,想删除主表数据的同时把子表相关的数据也删除,这个时候如果用触发器就没有效果了,因为这个触发器是在你删除表后才触发的,这个时候直接终止,提示“有主外键关系,不能删除等”,所有这样的删除触发器是没有效果的
本文标签: sql触发器(insert update delete)
版权声明:本文标题:sql触发器(insert,update,delete) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686791448h36989.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论