博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server-触发器(Trigger)之 After 触发器
阅读量:7014 次
发布时间:2019-06-28

本文共 3124 字,大约阅读时间需要 10 分钟。

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,如需转载请自行联系原作者

你可能感兴趣的文章
WMI使用小工具——WMI代码生成器(转)
查看>>
测试我用WLW在CSDN上的第一篇博客
查看>>
爱上MVC3系列~使用视图模型的好处及与数据模型之间的赋值问题
查看>>
jQuery中的join方法
查看>>
Java内存模型小析之原子性和可见性(二)
查看>>
JSP取得绝对路径
查看>>
ubuntu下修改计算机名
查看>>
WCF:百度百科
查看>>
工作中碰到的一些东西【弹出窗口】【拖放】【异步文件上传】
查看>>
浏览器中beforeunload的使用
查看>>
15.8. 日志
查看>>
如何利用docker 构建golang线上部署环境
查看>>
redis之(二十)redis的总结一
查看>>
spring boot sso
查看>>
Python Module_os_操作系统
查看>>
阿里云异构计算产品家族之数据智能,加速AI智能创新
查看>>
最新Do Not Track标准问世:网站都应尊重用户选择
查看>>
逾半数全球商业领袖认同智能自动化,但首先要解决员工的抵触情绪
查看>>
被忽视的Web安全漏洞:如何识别和解决?
查看>>
“懒惰”Linux管理员的10个关键技巧
查看>>