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
本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/08/14/2638019.html,如需转载请自行联系原作者