SQL Server 觸發器的使用執行個體(2)

來源:互聯網
上載者:User

定義:
觸發器是一種特殊的預存程序,在使用者試圖對指定的表執行指定的資料修改語句時自動執行。Microsoft SQL Server 允許為任何給定的 Insert、Update 或 Delete 語句建立多個觸發器。

基本文法:(協助裡的文法太長了)
Create Trigger [TriggerName]
ON [TableName]
FOR [Insert][,Delete][,Update]
AS
--觸發器要執行的動作陳述式.
Go

注意:
觸發器中不允許以下 Transact-SQL 陳述式:
Alter DATABASE ,Create DATABASE,DISK INIT,
DISK RESIZE, Drop DATABASE, LOAD DATABASE,
LOAD LOG, RECONFIGURE, RESTORE DATABASE,
RESTORE LOG

觸發器使用執行個體:

程式碼1.) 建立測試用的表(testTable)
if exists (select * from sysobjects where id = object_id(N'testTable') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table testTable
GO
Create Table testTable(testField varchar(50))

2.) 建立基於表(testTable)的觸發器(testTrigger)
IF EXISTS (Select name FROM sysobjects Where name = 'testTrigger' AND type = 'TR')
Drop TRIGGER testTrigger
GO
Create Trigger testTrigger
ON testTable
FOR Insert,Delete,Update
AS
if exists(select * from inserted)
     if exists(select * from deleted)
         print '...更新'
     else
         print '...插入'
else
     if exists(select * from deleted)
         print '...刪除'
Go

3.) 操作testTable表,測試觸發器testTrigger
分別執行Insert Into語句,Update語句,Delete語句,看看效果
Insert Into testTable values ('testContent!')

Update testTable Set testField = 'UpdateContent'

Delete From testTable

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.