ITPub博客

首页 > 数据库 > SQL Server > SQL Server-触发器(Trigger)之 After 触发器

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

SQL Server 作者:kevindd008 时间:2013-05-28 22:23:57 0 删除 编辑

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

学习软件:

Micrsofot 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
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22497759/viewspace-1118033/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-09-08