SQL server 2008创建触发器实例

触发器定义以及分类:

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。

Ø 什么是触发器

    触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在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')

直接就不让插入数据,和约束条件也是相类似的 。

 

 

猜你喜欢

转载自www.cnblogs.com/happyboy-2018-12-20-rex/p/10147887.html