sql触发器insert,update,delete pl sql insert 触发器

--insert 触发器
create trigger tri_insert
on student --将要进行更改的表名
forinsert --给表插入一条数据的时候触发
as
declare @student_id char(10) --定义一个变量
select @student_id=s.student_idfrom --把查询出的指定字段的值赋值给变量
student s inner joininserted i
on s.student_id=i.student_id
if @student_id='0000000001'
begin
raiserror('不能插入1的学号!',16,8)
rollbacktran
end
go
sql触发器(insert,update,delete) pl sql insert 触发器

--update触发器
create trigger tri_update
on student --将要进行更改的表名
for update--给表修改一条数据的时候触发
as
if update(student_id)
begin
raiserror('学号不能修改!',16,8)
rollbacktran
end
go


--delete触发器
create trigger tri_delete
on student --将要进行更改的表名
for delete--给表删除一条数据的时候触发
as
declare @student_id varchar(10)
s————elect @student_id=student_id from deleted
if @student_id='admin'
begin
raiserror('错误',16,8)
rollbacktran
end

解释:在删除(delete)数据的时候,可以假定数据库将要删除的数据放到一个deleted临时表中,我们可以向读取普通的表一样,select字段 from deleted
而insert的时候道理一样,只不过是把要插入的数据放在inserted表中。
更新操作可以认为是执行了两个操作,先把那一行记录delete掉,然后再insert,这样update操作实际上就对deleted表和inserted表的操作,所以不会有updated表了,有的时候两个表是主外键关系,想删除主表数据的同时把子表相关的数据也删除,这个时候如果用触发器就没有效果了,因为这个触发器是在你删除表后才触发的,这个时候直接终止,提示“有主外键关系,不能删除等”,所有这样的删除触发器是没有效果的

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/288542.html

更多阅读

SQL Server SQL触发器经验详解 sqlserver 触发器调试

【SQL Server】SQL触发器经验详解——简介自从上次在经验中使用了触发器,有读者询问我一些关于触发器的相关信息,个人推荐首先你需要先去把触发器最基础的东西了解清楚,然后通过这次的经验,希望能在你理解的基础上,加深你对触发器的了解,

PL/SQL报错:“ORA-12154:TNS:无法解析指定的连接标识符”

在连接oracle的时候PL/SQL报错:“ORA-12154: TNS:无法解析指定的连接标识符”,在网上找了很多资料,然后问题解决。其中下面的文章分析的过程很值得学习,特地转载过来时刻告诫自己全局观的重要性!  下面是引用正文  接着上次的话题,在6

数据库insert语句的使用 使用数据库语句

可以用jsp语言进行判断假如你要插入my1、my3、my4字段可以将参数存入数组String test [] ={“my1”,"my3",my4}String value[] ={"value1","value2","value3"}然后进行sql语句的拼写StringBuffer sql = new StringBuffer("insert in

PL/SQL Developer调试存储过程步骤转 pl sql developer教程

一、定位你的procedure1。在屏幕左边的对象浏览器中展开procedure2。找到你的procedure二、打开测试窗口1。在你的procedure上点击右键2。在弹出的菜单中选择test3。PL/SQL Devoloper就会打开一个测试窗口并自动生成一个调用块4。在

声明:《sql触发器insert,update,delete pl sql insert 触发器》为网友他系她心分享!如侵犯到您的合法权益请联系我们删除