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‘)

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

原文地址:https://www.cnblogs.com/happyboy-2018-12-20-rex/p/10147887.html

时间: 2024-10-29 19:06:44

SQL server 2008创建触发器实例的相关文章

SQL Server 2008创建数据库

1.数据.数据库.数据管理系统基本概念: 数据:人类有用信息的符号化表示. 数据库:按照数据结构来组织.存储和管理数据的一个仓库. 数据库管理系统(DBMS):可维护.存储并为应用系统提供数据的软件系统(软件+数据库+数据管理员). 可以客观描述的事物被称为"实体",不同的数据体现了不同的实体.数据每一行(Row)对应一个实体,被称为"记录(record)",每个输入项称为"列"(Column),如编号,姓名,学号等.数据"表"

SQL Server 2008创建oracle链接服务器(心得)

操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了以后再配置对应目录(我的是C:\Oracle\ora90\network\ADMIN)下的tnsnames.ora文件.这一步做完,基本上剩余的工作就是在sql server 2008里面创建链接服务器了. 2.新建链接服务器.当时我连的oracle数据库是64位11g,虽然安装的是“oracle9

SQL server与Oracle触发器的创建与使用

SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE TRIGGER WMY ON Student Instead of INSERT AS BEGIN INSERT INTO Student (number,name) VALUES (1205,'角色2'); END; --Begin 与end相当于{},是一个语句块,可有可无此处为演示所用 --ON

Sql server 2008 触发器实现

昨天在进行系统升级中,对于某些程序生成的中间表数据的矫正的工作十分恼火.因现场采集设备和计量设备运行情况及变更情况不可控.常常造成因非程序因素(自定义名词,大概的意思就是因为现场采集设备断电.计量设备更换.系统基础通讯信息发生变更等一系列认为原因影响数据存储的准确性),影响后期的数据统计分析的准确性和有效性.不时被客户发现直接向市场部投诉说系统不稳定,要求现场排查问题.我擦!牢骚终止. 终究其问题主要是在生成中间表时,没有必要的验证.只是单纯的在某项操作中,添加的生成中间表的响应操作.后期当发现

SQL Server 2008从基础开始学习历程(1)------创建表与查询

[by:yy] 无论我们学什么呢,都要讲究一个Why,一个How.那么我们为什么要学SQL呢?无非就那么几点. 1.为了适应其他技术,和其他技术配对而学. 我个人的理解呢,只要在IT行业,无论你学什么,或者做什么工作.都离不开数据库.而学习数据库呢,又太文字化了,看的心里就烦.我是很抵触文字的.看着一大排一大排的字,就怕.可能是大天朝的教育所致.已经怕了学生生涯了. 2.为了适应社会而学. 随便找个招聘信息,都会有标注需要会SQL语言啊.了解MySql呀.会搞Oracle呀.所以呢,为了能在找工

SQL Server 2008数据库创建用户只读权限的两种方式

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名.用户名及赋予相应权限 sp_addlogin 'test','test','DB'  >>登录名.密码.登录的数据库 sp_grantdbaccess 'test'  >>将数据库用户加入到当前数据库 gran

SQL Server 2008 R2 附加数据库 “尝试打开或创建物理文件 拒绝访问”的解决办法

其实是来自一篇SQL Server 2005同样错误的帖子,不过试了在SQL Server 2008 R2下面也有效,记录一下. 解决方法: 在所有程序—Microsoft SQL Server 2008 R2—配置工具—SQL Server 配置管理器,点击"SQL Server 服务",右边会显示正在运行的服务,以及对应的用户,右击SQL Server (MSSQLSERVER),选择“属性”,把内置帐户选择为"Local System",点击重新启动就OK了.

SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

不是很理解为什么在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你.而且我遇到的情况是居然有的时候阻止你,有的时候不阻止你,摸不到头脑.SQL Server 2008“阻止保存要求重新创建表的更改”的错误的解决方案是本文我们主要要介绍的内容,情况是这样的:我们在用SQL Server 2008 建完表后,插入或修改任意列时,提示:当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成

利用SQL Server 2008 R2创建自动备份计划

本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动?Sql Management studio,确保"SQL Server 代理"处于启动状态.如果没有,可以右击选择"启动". 第二步,依次展开"管理"---"维护计划",并右击"维护计划"选择"新建维护计划",这里你可以填写一个合适的有意义的名字. 点击&quo