今天學習SQL Server數據庫中DML觸發器(DDL觸發器以后有時間繼續學習)。
當刪除一條創建有觸發器的表中的內容時,觸發器執行SQL語句。
1.首相先創建一張表,表名稱是 [Test] , 內有三個字段,分別是 [Name], Sex, Place.
1 use inter2 create table Test3 (4 [Name] varchar(20) not null,5 Sex varchar(20) not null,6 Place varchar(20) not null7 )
2.然后為表中的字段添加內容:
1 use inter2 insert into Test ([Name], Sex, Place) values ('張三', '男', '北京')3 insert into Test ([Name], Sex, Place) values ('李四', '女', '上海')4 insert into Test ([Name], Sex, Place) values ('王五', '男', '廣州')
添加之后截圖:
3.創建觸發器:
1 set ANSI_NULLS ON 2 set QUOTED_IDENTIFIER ON 3 GO 4 -- ============================================= 5 -- Author: H_F_us 6 -- Create date: 2014年12月28日20:29:47 7 -- Description: 測試觸發器 8 -- ============================================= 9 ALTER TRIGGER [dbo].[First_tg]10 ON [dbo].[Test]11 AFTER DELETE12 AS 13 BEGIN14 15 insert into Test ([Name], Sex, Place) values ('Test', 'Test', 'Test')16 17 END
4.之后,如果執行一條刪除語句,如:
1 delete from Test where [Name] = '張三'
5.則觸發器被觸動,執行下面SQL語句:
1 insert into Test ([Name], Sex, Place) values ('Test', 'Test', 'Test') -- 觸發器中事先寫好的SQL語句
6.語句執行之后,截圖:
*解說:
1.觸發器SQL語句中ALTER TRIGGER 后面跟的是觸發器的名稱,在符合SQL命名規范的前提下,任意選取。
2.觸發器SQL語句中 ON 后面跟的是要創建觸發器表的表名稱。
3.AFTER之后是執行哪種操作后激活觸發器。 delete 、insert、 update,三種操作類型,至少觸發器中要真有一種,也可以是三種的任意組合,順序不受限制。
4.這個例子使用的是delete操作類型,其他操作類型同上。
5.在SQL觸發器中,不僅僅是只有AFTER 觸發器還有一種是 INSTEAD OF 觸發器 。前者是在SQL語句執行之后,激活觸發器,也就是今天所寫的這一種情況。而后者是在SQL語句執行之前激活觸發器。
INSTEAD OF 觸發器的使用,會在 {SQL Server 數據庫觸發器使用 【二】}中寫出來。如果有什么錯誤的地方請大家在評論區指正,先謝過。
新聞熱點
疑難解答