第十章触发器的创建与管理
生活随笔
收集整理的這篇文章主要介紹了
第十章触发器的创建与管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第十章觸發器的創建與管理
- 10.1_觸發器簡介
- 10.2_觸發器的創建、修改、刪除
- 10.2.1_觸發器的創建
- 10.2.2_觸發器的修改
- 10.2.3_觸發器的刪除
- 10.2.4_觸發器的創建、修改、刪除舉例
- 10.3_instead of觸發器
- 10.3.1_instead of觸發器簡介及舉例 有疑問
- 10.4_inserted、deleted表
- 10.5_注意事項
10.1_觸發器簡介
觸發器是一種特殊的存儲過程,常常用于實現強制業務規則和數據完整性。觸發器由SQL Server自動執行,不能由應用程序調用,這是它與存儲過程不同的地方,便于保護數據庫的完整性和完全性。
10.2_觸發器的創建、修改、刪除
10.2.1_觸發器的創建
CREATE TRIGGER trigger_name [WITH ENCRYPTION]--加密 ON table_name {FOR | AFTER | INSTEAD OF} INSERT, UPDATE, DELETE AS --sql過程塊10.2.2_觸發器的修改
ALTER TRIGGER trigger_name [WITH ENCRYPTION]--加密 ON table_name FOR INSERT, UPDATE, DELETE AS --sql過程塊10.2.3_觸發器的刪除
DROP TRIGGER trigger_name10.2.4_觸發器的創建、修改、刪除舉例
CREATE TRIGGER Company_attention ON Company WITH ENCRYPTION FOR INSERT AS print '字符串' ALTER TRIGGER Company_attention ON Company WITH ENCRYPTION FOR INSERT AS print '字符串' DROP TRIGGER Company_attention10.3_instead of觸發器
10.3.1_instead of觸發器簡介及舉例 有疑問
instead of觸發器作用:執行觸發器中的內容,而禁止執行觸發詞觸發器的sql語句
CREATE TRIGGER [CONTRACT_DELETE] ON [CONTRACT] INSTEAD OF DELETE--instead of類型 AS BEGIN IF EXISTS (SELECT Count(*) FROM ContractDetail WHERE ContractID IN (SELECT ContractID FROM Deleted))--如果這個結果不是0就說明有相關記錄 --打印 PRINT ‘合同明細表中有相關記錄,不能刪除’ ELSE--否則就刪除 DELETE FROM CONTRACT WHERE CONTRACTID in (SELECT CONTRACTID FROM deleted) END再次刪除不會再次觸發這個觸發器嗎
10.4_inserted、deleted表
Inserted表 :
存放由insert 或update語句的執行而導致要加到該觸發器作用的表中去的任何新行。
deleted表 :
存放由delete 或update語句的執行而導致要從被該觸發器作用的表中刪除的任何行。
inserted與deleted表中自帶與操作的表同樣的屬性列
10.5_注意事項
SQL Server 允許創建的存儲過程引用尚不存在的對象。在創建時,只進行語法檢查。 CREATE TRIGGER
必須是批處理中的第一條語句,并且只能應用到一個表中。
觸發器中不允許以下 Transact-SQL 語句:ALTER DATABASE 、CREATE DATABASE、 DISK INIT 、DISK RESIZE 、DROP DATABASE 、LOAD DATABASE 、LOAD LOG 、RECONFIGURE 、RESTORE DATABASE 、RESTORE LOG
總結
以上是生活随笔為你收集整理的第十章触发器的创建与管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【TensorFlow】 基于视频时序L
- 下一篇: C语言小白——数组与字符串