SQL Server-触发器(Trigger)之 After 触发器
ylbtech-SQL Server:SQL Server-触发器(Trigger)之 After 触发器 |
SQL Server 触发器(Trigger)之 After 触发器。
内容简介 |
-- =============================================
-- ylb:测试触发器
-- Comments:创建基本的触发器,修改触发器,删除触发器
-- Comments:创建基本的触发器,修改触发器,删除触发器
-- TriggerType:After触发器
-- KeyWord:Trigger, SQL Server
-- KeyWord:Trigger, SQL Server
--
-- ylb: ylb,tech
-- 9:52 2012/2/17
-- =============================================
-- 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,如需转载请自行联系原作者