sqlserver触发器怎么使用?

TheDisguiser 2020-09-08 23:17:24 java常见问答 5400

在数据库众多功能中,触发器虽然显得不是很起眼,但其用处也小,所以本篇文章小编就专门来带小伙伴们了解SqlServer中触发器的实现。

示例:

--1) 在student上创建 < strong > INSERT触发器 < /strong>stu_insert,要求在student表中插入记录时(要求每次只能插入一条记录),这个触发器都将更新class表中的class_nun列。并测试触发器stu_insert。
create trigger stu_insert
on student
for insert
as
update class set class_num = class_num + 1
where class_id = (select class_id from inserted)
select * from class
    --测试
insert into student values('0602011', '文', '女', '1986-09-21', '0602')
select * from class
    --2) 在student上创建 < strong > DELETE触发器 < /strong>stu_delete,要求在student表中删除记录时,这个触发器都将更新class表中的class_nun列。并测试触发器stu_delete。
create trigger stu_delete
on student
for delete
as
update class set class_num = class_num - 1
where class_id = (select class_id from deleted)
    --测试
delete from student where stu_id = '0601001'
    --3) 查看触发器相关信息: 使用系统存储过程 < strong > sp_help, sp_helptext查看触发器 < /strong>相关信息。
exec sp_help
exec sp_help stu_insert
exec sp_helptext stu_insert
--4) 对于下列触发器:
create trigger stu_update
on student
instead of update
as
print '修改学生表'
drop trigger stu_update
--执行语句
update student
set stu_id = '0601003'
where stu_name = '小埋'
    --会怎么样?
    --消息 2627, 级别 14, 状态 1, 第 1 行
    --违反了 PRIMARY KEY 约束 'PK__student__E53CAB217F60ED59'。
不能在对象 'dbo.student'
中插入重复键。
--语句已终止。
--5) 创建 < strong > DDL触发器 < /strong>,在当前数据库中不允许删除或修改表
create trigger data
on database
for drop_table, alter_table
as
print '不允许删除或修改表'
rollback

以上就是本篇文章的所有内容,更多java入门知识敬请关注奇Q工具网了解详情。

推荐阅读:

sqlserver使用教程解析

sqlserver数据库是什么?有什么用处?

sqlserver增删改查语句实例详解