数据库视频总结四(存储过程和触发器)
1、存儲過程
概念:它是一組未來完成特定功能的SQL語句集,經編譯后存儲在數據庫中。存儲過程可包含程序流,邏輯以及對數據庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及返回值。
作用:
與其他程序共享應用程序邏輯,因而確保了數據訪問和修改的一致性。
具有安全性和所有權鏈接,以及可以附件到它們的證書。
提供了安全機制。
允許模塊化程序設計。
可以減少網絡通信流量。
分類:
用戶自定義過程
系統存儲過程
擴展存儲過程
方法:
| 創建: | create |
| 調用 | exec |
| 修改 | Alter |
| 刪除 | Drop |
臨時存儲過程
| # | 局部臨時存儲過程 |
| ## | 全局臨時存儲過程 |
嵌套存儲過程,最多可以嵌套32層。想要查看存儲過程級數,可以使用下面語句:
Print @@nestlevel?
2、觸發器
概念:觸發器是一種特殊的存儲過程,它是一個在修改指定表中的數據時執行的存儲過程。經常通過創建觸發器來強制實現不同表中的邏輯相關數據的引用完整性或一致性。由于用戶不能繞過觸發器,所以可以用它來強制實施復雜的業務規則,以此確保數據的完整性。
為什么使用觸發器?
觸發器自動執行,它們在標的數據作了任何修改后立即激活。
觸發器可以通過對數據庫中的相關表進行層疊更改,這比把代碼寫在前臺更安全。
觸發器可以強制限制,比check約束更復雜。與check不同的是,觸發器可以引用其他表中的列。
| 觸發器種類 | 針對的對象 | 說明 |
| DDL觸發器 | DDL事件 | 數據庫架構進行更改 |
| DML觸發器 | DML事件 | update、delete、delete |
創建DDL觸發器:
Create trigger T_notdelete On datebase For drop_table,alter_table as print ‘事務不能被處理,基礎數據不能修改’ rollback創建DML觸發器:
--創建insert觸發器 Create trigger T_addnum On 學生信息 For insert As update 班級信息 set 班級人數=班級人數+1 Where 班級編號=1 --創建delete觸發器 Create trigger T_deleteteacher On 教師信息 For delete As Select 姓名 as 被刪除的教師姓名, 性別,年齡,聯系電話 from delete --創建update觸發器 Create trigger T_update On 教師信息 For update As If update (姓名) or update (性別) Begin Print ‘事務不能被處理,基礎數據不能修改’Rollback transaction End ElsePrint ‘數據修改成功’?
觸發器可以通過事件進行觸發而被執行;存儲過程可以通過存儲過程名直接被調用。
總結
以上是生活随笔為你收集整理的数据库视频总结四(存储过程和触发器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库视频总结三(游标和事务)
- 下一篇: 机房收费系统--准备工作