概述
触发器:
概念:
触发器是一个在修改制定表中的数据时执行的存储过程,它的执行不由程序调用也不是手工启动, 触发器主要通过事件进行触发而被执行
触发器和存储过程的区别:
触发器存储过程的区别是运行方式不同,存储过程需要使用EXECUTE语句调用,而触发器是在用户执行sql 语句时自动触发执行
触发器的优点:
1.触发器是自动的。当对表中的数据做了任何修改之后立即被激活。
2.触发器可以通过数据库中的相关表进行层叠修改。
3.触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂。
触发器的分类:
主要分为俩大类:
DML触发器 DDL触发器
DML触发器:
当数据库服务器中发生数据操作语言事件时执行这些操作。SqlServer中的DML触发器有三种:
insert触发器:向表中插入数据时被触发;
delete触发器:从表中删除数据时被触发;
update触发器:修改表中数据时被触发。
三个触发器的工作原理:
创建 触发器 :
语法格式:
CREATE TRIGGER trigger_name
ON[ tableview] ' 基表或者基视图
{
{{forafterinstead of }
{[delete][,][insert][,][update]
AS
SQL_STATEMENT
}
}
创建update 触发器:
CREATE TRIGGER t_update
on 教师信息
for update
as
if(update(姓名) or (性别) )
begin
print' 事务不能被处理,基础数据不能修改'
ROLLBACK TRANSACTION
end
else
pirnt'修改成功'
update 教师信息 set 姓名=‘立方’ where 教师编号=‘32323’
最终结果: 没有被执行
DDL触发器:
DDL触发器是当服务器或者数据库中发生数据定义语言(主要是以create,drop,alter开头的语句)事件时被激活使用,
使用DDL触发器可以防止对数据架构进行的某些更改或记录数据中的更改或事件操作。
区别:
dml 触发器是针对某个表的数据进行操作的
ddl是对整个数据库进行操作的
创建DDL触发器:
语法格式:
与dml 相似
CREATE TRIGGER trigger_name
ON{ ALL SERVER DATABASE }
’整个服务器或者当前数据库
WITH ENCRYPTION '是否加密
{ for after{ event_type} ' 触发的事件类型
as
sql_statement
最后
以上就是霸气白猫为你收集整理的sql server 触发器详解的全部内容,希望文章能够帮你解决sql server 触发器详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复