SQL server 2008创建触发器实例
Posted 帅气土豆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\')
直接就不让插入数据,和约束条件也是相类似的 。
以上是关于SQL server 2008创建触发器实例的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 2008 上创建插入更新触发器
在 SQL Server 2008 R2 中为每个表创建创建触发器