SQL Server 触发器(Trigger)之 After 触发器。
| 内容简介 |
-- =============================================
| 技术与环境 |
|
语言类别: |
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
masterGO--
Drop the database if it already existsIF
EXISTS (SELECT nameFROM sys.databasesWHERE name
= N'TestDb')DROP DATABASE
TestDbGOCREATE DATABASE TestDbGOuse
TestDbgo--
=============================================-- 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--TestDatainsert 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);goselect *
from UsersGO |
| 2, 第二步,创建触发器 示例一 |
use
TestDbgo--======================================--
Create T-SQL Trigger Template--
ylb:创建触发器--
条件:1,创建一个触发器,当向“Users”表插入数据时,提示“添加成功!”--======================================CREATE TRIGGER tri_Users_InsertON UsersAFTER INSERTASBEGINPRINT '添加成功!'ENDGO--Test,1insert into
Users(username,sex,score)
values('Trigger_Insert','男',75); |
| 3,创建触发器 示例二 | 注意:现在这个功能没有精确实现,只要修改这一行,都无法修改,望有高手指教 |
use
TestDbgo--======================================--
Create T-SQL Trigger Template--
ylb:创建触发器--
条件:不允许修改“score(成绩)”,这一列,如果有则,滚回操作--======================================CREATE TRIGGER tri_Users_Score_Updateon UsersAFTER UPDATEASBEGINPRINT '修改失败!成绩这一列,不允许修改!'ROLLBACK TRANSACTIONENDGO--Test,2--把编号是“100”的用户的成绩改成88分。update Users
set score=100 where
userID=100go |
| 4,第三步,修改触发器 |
use
TestDbgo--======================================--
Alter T-SQL Trigger Template--
ylb:修改触发器--======================================ALTER TRIGGER
tri_Users_InsertON UsersAFTER INSERTASBEGINPRINT '添加用户成功!'ENDGO--Test,1insert into
Users(username,sex,score)
values('Trigger_Insert','男',75); |
| 5,第四步,删除触发器 |
use
TestDbgo--======================================--
Drop Trigger Template--
ylb:删除触发器--======================================USE
TestDbGOIF
OBJECT_ID ('ri_Users_Score_Update','TR')
IS NOT NULLDROP TRIGGER
tri_Users_Score_UpdateGO |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22497759/viewspace-1118033/ ,如需转载,请注明出处,否则将追究法律责任。