SQL Server-触发器(Trigger)之 After 触发器

ylbtech-SQL Server:SQL Server-触发器(Trigger)之 After 触发器

 SQL Server 触发器(Trigger)之 After 触发器。

内容简介

-- =============================================

-- ylb:测试触发器
-- Comments:创建基本的触发器,修改触发器,删除触发器
-- TriggerType:After触发器
-- KeyWord:Trigger, SQL Server
--
-- ylb: ylb,tech
-- 9:52 2012/2/17
-- =============================================
 
技术与环境
   

语言类别:

SQL之T-SQL

thankyou: sunshine, 谢谢你的默默付出

数据库:

SQL Server

学习软件:

Microsoft SQL Server

课程总策划:

yuanbo

English name:

sunshine

个人主页:

http://www.cnblogs.com/ylbtech/

科研团队:

ylbtech

教研团队:

ylbtech

1,第一步,创建基本的数据库和插入测试数据  
-- =============================================

-- ylb:测试触发器

-- Remark:创建基本的触发器,修改触发器,删除触发器

-- TriggerType:After触发器

-- =============================================

USE master

GO



-- Drop the database if it already exists

IF  EXISTS (

 SELECT name 

  FROM sys.databases 

  WHERE name = N'TestDb'

)

DROP DATABASE TestDb

GO



CREATE DATABASE TestDb

GO

use TestDb

go

-- =============================================

-- ylb:1,创建用户表

-- =============================================

create table Users

(

userID int primary key identity(100,1),

username varchar(200) not null,

sex char(2) default('男'),

score numeric(7,1)  --成绩

)

go

--TestData

insert into Users(username,sex,score) values('sunshine','男',60.5);

insert into Users(username,sex,score) values('dream','女',80);

insert into Users(username,sex,score) values('rain','男',70);

insert into Users(username,sex,score) values('mike','男',75);

go

select * from Users



GO

2, 第二步,创建触发器 示例一
use TestDb

go

--======================================

--  Create T-SQL Trigger Template

-- ylb:创建触发器

-- 条件:1,创建一个触发器,当向“Users”表插入数据时,提示“添加成功!”

--======================================



CREATE TRIGGER tri_Users_Insert

ON Users

AFTER INSERT

AS

BEGIN

PRINT '添加成功!'

END

GO

--Test,1

insert into Users(username,sex,score) values('Trigger_Insert','男',75);

3,创建触发器 示例二     注意:现在这个功能没有精确实现,只要修改这一行,都无法修改,望有高手指教
use TestDb

go

--======================================

--  Create T-SQL Trigger Template

-- ylb:创建触发器

-- 条件:不允许修改“score(成绩)”,这一列,如果有则,滚回操作

--======================================

CREATE TRIGGER tri_Users_Score_Update

on Users

AFTER UPDATE

AS

BEGIN

PRINT '修改失败!成绩这一列,不允许修改!'

ROLLBACK TRANSACTION

END

GO

--Test,2

--把编号是“100”的用户的成绩改成88分。

update Users set score=100 where userID=100



go

4,第三步,修改触发器  
use TestDb

go

--======================================

--  Alter T-SQL Trigger Template

-- ylb:修改触发器

--======================================

ALTER TRIGGER tri_Users_Insert

ON Users

AFTER INSERT

AS

BEGIN

PRINT '添加用户成功!'

END

GO

--Test,1

insert into Users(username,sex,score) values('Trigger_Insert','男',75);

5,第四步,删除触发器
use TestDb

go

--======================================

--  Drop Trigger Template

-- ylb:删除触发器

--======================================

USE TestDb

GO



IF OBJECT_ID ('ri_Users_Score_Update','TR') IS NOT NULL

 DROP TRIGGER tri_Users_Score_Update 

GO

寄语:我们曾经都或多或少,为一件事物或一个人付出过那么多的时间,可是得到最后的结果,却不是自己当初想要的;生活中有很多无奈,无法改变,唯一能做的就是适当地在不同的时期,调整自己的态度;我相信胜利就在不远处,辛勤付出终会收获,人生在过程中变得丰盈和幸福.   ---sunshine赠予dream      2012-2-17 10:07

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(SQL Server)