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