標籤:
今天學習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 資料庫觸發器使用 【二】}中寫出來。如果有什麼錯誤的地方請大家在評論區指正,先謝過。
SQL Server 資料庫DML觸發器 【一】