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