格式:
create trigger tri_name
on table_name
[for (insert/update/delete)]
/[instead of (insert/update/delete)]
as
statement
create trigger 名称
on 表名for (insert update delete 其中之一)
as
语句
一
alter trigger tri_insert
on course for insert
as
declare @name nchar(5)
select @name=coursename from inserted
print '名称'+@name+'已被加入表!'
insert course
values ('007','计算机英语','004')
二
create trigger tri_delname
on course for delete
as
declare @name nchar(10)
select @name=coursename from deleted
print '名称'+@name+'已被删除出表!'
delete from course
where course_id='006'
三
create trigger tri_upname
on course for update
as
declare @oldname nchar(10)
declare @newname nchar(10)
select @oldname=coursename from deleted
select @newname=coursename from inserted
print '名称'+@oldname+'已被更新为'+@newname
update course
set coursename='计算机管理'
where course_id='007'
四
alter trigger tri_inname
on course instead of insert
as
print '名称'+@name+'未被加入表!'
insert into course
values('006','信息管理','002')
五
create trigger tri_upsc
on sc for update
as
declare @sid nchar(10)
declare @cid nchar(10)
declare @oldscore int
declare @newscore int
select @sid=student_id,@cid=course_id,@oldscore=score
from deleted
select @newscore=score from inserted
print '在'+convert(nvarchar(30),getdate())+
@sid+'的'+@cid+'课程成绩由'+
convert(nvarchar(3),@oldscore)+
'改变为'+ convert(nvarchar(3),@newscore)
update sc
set score=60
where student_id='002' and course_id='003'
六
create trigger tri_insname
on teacher for insert
as
declare @name nchar(10)
select @name=tname from inserted
print '教师'+@name+'插入到教师表中!'
七
create trigger tri_delname
on teacher for delete
as
declare @name nchar(10)
select @name=tname from deleted
print '教师'+@name+'从教师表中删除了!'
八
create trigger tri_upname
on teacher for update
as
declare @oldname nchar(10),@newname nchar(10)
select @oldname=tname from deleted
select @newname=tname from inserted
print '教师'+@oldname+'改名为'+@newname
九
create trigger tri_upsc
on sc for update
as
declare @sid nchar(10)
declare @cid nchar(10)
declare @oldscore int
declare @newscore int
select @sid=sid,@cid=cid,@oldscore=score
from deleted
select @newscore=score from inserted
print '在'+convert(nvarchar(30),getdate())+
@sid+'的'+@cid+'课程成绩由'+
convert(nvarchar(3),@oldscore)+
'改变为'+ convert(nvarchar(3),@newscore)
十
create trigger tri_inssc
on sc for insert
as
declare @sid nchar(10)
declare @cid nchar(10)
declare @s int
select @sid=sid,@cid=cid,@s=score
from inserted
print @sid+'的'+@cid+'课程成绩'+convert(nvarchar(3),@s)
+'插入到成绩表中'
insert into sc
values ('004','004',100)
update sc
set score=60
where sid='002' and cid='003'
update teacher
set tname='叶问'
where tid='004'
insert into teacher
values ('005','李云松')
十一
create trigger tri_inscourse
on course for insert
as
declare @name nchar(10)
select @name=cname from inserted
print '名称为:'+@name+'的课程插入到课程表中!'
insert into course
values('006','数据库程序设计','001')
十二
create trigger tri_upcname
on course for update
as
declare @oldname nchar(10)
declare @newname nchar(10)
select @oldname=cname from deleted
select @newname=cname from inserted
print '课程名:'+@oldname+'改名为'+@newname
update course
set cname='数据库管理'
where cid='006'
十三
create trigger tri_delname1
on course for delete
as
declare @name nchar(10)
select @name=cname from deleted
print '课程'+@name+'删除了!'
delete from course
where cid='006'
十四
create trigger tri_insofname
on course instead of insert
as
print '当前用户无权插入数据!'
insert into course
values('006','数据库管理','001')
十五
create trigger tri_insofname1
on course instead of update
as
print '当前用户无权更新数据!'
update course
set cname='专业英语'
where cid='005'
create trigger tri_insertname
on student for insert
as
declare @name nchar(10)
select @name=sname from inserted
print '学生:'+@name+'插入到学生表中!'
--执行
insert into .....
create trigger tri_deletename
on student for delete
as
declare @name nchar(10)
select @name=sname from deleted
print '学生:'+@name+'从学生表中删除了!'
--执行
delete from student
where ....
create trigger tri_updatename
on student for update
as
declare @oldname nchar(10)
declare @newname nchar(10)
select @oldname=sname from deleted
select @newname=sname from inserted
print '学生:'+@oldname+ '更改为'+@newname
--执行
update student
set sname='' --新名
where sname='' --旧名
create trigger insof_update
on student instead of update
as
declare @sex nchar(10),@sid nchar(10)
select @sex=ssex from inserted
select @sid=sid from inserted
if @sex not in ('男','女')
print '插入值错误,请重做!'
else
update student
set ssex='男'
where sid=@sid
--执行
update student
set ssex='va'
where sid=''
update student
set ssex='男'
where sid=''
分享到:
相关推荐
SQL 数据库 触发器 SQL 数据库 触发器
触发器---FOR INSERT与INSTEAD OF ,SQL中触发器的讲述,可以利用触发器来处理数据库相关程序
1.掌握T-SQL基本语法 2.建立对象时应该先排查在系统表中是否有相同名字的对象。 四、注意事项 1.调用存储过程时传递参数。 2.触发器不接受用户应用程序传递的参数。 五、实验学时:6学时 六、实验重点及...
SQL-数据库---图书管理系统.docx
SQL数据库----存储过程、触发器
SQL数据库触发器练习题附加数据库
SQL数据库。
SQL数据库 触发器的简易课件 触发器情况基本涉及到,并有一定的实例
SQL语句解释大全--从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --...
DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式 DROP SCHEMA --从数据库中删除一个模式 CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN ...
神通数据库触发器按照所触发动作的间隔尺寸可以分为语句级触发器和行 级触发器。触发器由 CREATE TRIGGER 语句定义,FOR EACH 子句定义了触发动作的间隔尺寸,它既 可以是 FOR EACH STATEMENT(语句级触发器),也...
T-SQL 的所有指令集结. ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE ...
数据库触发器的应用,期中有许多不同的例子能够方便学习及尝试
通过本书,你将深入了解t-sql的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-...
CREATE PROCEDURE , sysname, ProcedureName> -- Add the parameters for the stored procedure here , sysname, @p1> , , int> = , , 0>, , sysname, @p2> , , int> = , , 0>
DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式 DROP SCHEMA --从数据库中删除一个模式 CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中...
SQLServer2005数据库触发器应用SQLServer2005数据库触发器应用
说明:使用银行贷款数据库。 1、新建一个贷款记录统计表LoanNum,存放每一个法人单位的贷款次数。为LoanT表创建一个INSERT语句级触发器,当有新的贷款记录插入时,需要及时更新LoanNum表中该法人的贷款次数。 ...
sakila数据库触发器的理解 基于sakila的触发器的设计 PDF中包括: 1. 观察 sakila.mwb 并回答问题 1.1图中共有几个 View 1.2分析以下 3 个视图,回答以下问题: 2.观察 sakila-schema.sql 和 sakila-data.sql 并回答...
sql server 触发器 数据库 sql server 触发器 数据库