SQL Server-觸發器(Trigger)之 After 觸發器


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

warn 作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM