触发器定义以及分类:
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。
? 什么是触发器
触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
下面介绍一个触发器insert 插入时会触发的:
先在数据库上面创建一个学生表:
create table students
(
ID int not null,
name char(10),
age char(2),
city varchar(12),
)
现在定义AGE年龄字段插入数据值超过20时会触发触发器不让操作。
下面是示例代码:
IF OBJECT_ID (N‘TRIGER_Students_Insert‘, N‘tr‘) IS NOT NULL
DROP TRIGGER TRIGER_Students_Insert;
GO
CREATE TRIGGER TRIGER_Students_Insert
ON Students
FOR INSERT
AS
declare @age int
select @age=Students.Age FROM Students INNER JOIN inserted ON Students.ID =inserted.ID
PRINT @age
if(@age<20)
begin
raiserror(‘学生年龄必须要大于20哦‘,20,8)
rollback tran
end
这样我们插入数据试试:
INSERT INTO Students(ID,Name,Age,City) VALUES(106,‘张飞‘,14,‘BeiJing‘)
直接就不让插入数据,和约束条件也是相类似的 。
原文地址:https://www.cnblogs.com/happyboy-2018-12-20-rex/p/10147887.html