數據庫中的事務、存儲過程和觸發器的簡單使用
什么是事務(Transaction)
這些sql語句作為一個整體一起向系統提交,要么都執行、要么都不執行
語法步驟:
開始事務:BEGIN TRANSACTION
事務提交:COMMIT TRANSACTION
事務回滾:ROLLBACK TRANSACTION
判斷某條語句執行是否出錯:
全局變量@@ERROR;
@@ERROR只能判斷當前一條T-SQL語句執行是否有錯,為了判斷事務中所有T-SQL語句是否有錯,我們需要對錯誤進行累計;
例:SET @errorSum=@errorSum+@@error
存儲過程---就像數據庫中運行方法(函數)
和C#里的方法一樣,由存儲過程名/存儲過程參數組成/可以有返回結果。
前面學的if else/while/變量 等,都可以在存儲過程中使用
優點:
執行速度更快
允許模塊化程序設計
提高系統安全性
減少網絡流通量
系統存儲過程
由系統定義,存放在master數據庫中
名稱以“sp_”開頭或”xp_”開頭
自定義存儲過程
由用戶在自己的數據庫中創建的存儲過程
系統存儲過程
說明
sp_databases
列出服務器上的所有數據庫。
sp_helpdb
報告有關指定數據庫或所有數據庫的信息
sp_renamedb
更改數據庫的名稱
sp_tables
返回當前環境下可查詢的對象的列表
sp_columns
回某個表列的信息
sp_help
查看某個表的所有信息
sp_helpconstraint
查看某個表的約束
sp_helpindex
查看某個表的索引
sp_stored_procedures
列出當前環境中的所有存儲過程。 sp_password
添加或修改登錄帳戶的密碼。
sp_helptext
顯示默認值、未加密的存儲過程、用戶定義的存儲過程、觸發器或視圖的實際文本。
定義存儲過程的語法
CREATE PROC[EDURE] 存儲過程名
@參數 數據類型 = 默認值 OUTPUT,
@參數n 數據類型 = 默認值 OUTPUT
AS
SQL語句
參數說明:
參數可選
參數分為輸入參數、輸出參數
輸入參數允許有默認值
EXEC 過程名 [參數]
觸發器是一種特殊類型的存儲過程,它不同于前面介紹過的一般的存儲過程。
一般的存儲過程通過存儲過程名稱被直接調用,而觸發器主要是通過事件進行觸發而被執行。
觸發器是一個功能強大的工具,在表中數據發生變化時自動強制執行。觸發器可以用于SQL Server約束、默認值和規則的完整性檢查,還可以完成難以用普通約束實現的復雜功能。
那究竟何為觸發器?在SQL Server里面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。
常見的觸發器有三種:分別應用于Insert , Update , Delete 事件
常用語法
CREATE TRIGGER triggerName ON Table for UPDATE|INSERT|DELETE AS begin … end |
觸發器-更新
CREATE TRIGGER testForFun ON dbo.Category for UPDATE AS begin select * from book end update Category set c_name = 'Android2' where c_id=3 |
觸發器-刪除
CREATE TRIGGER testForDel ON dbo.Category for delete AS begin select * from book end delete Category set c_name = 'Android2' where c_id=3 |
posted on 2014-03-27 17:06 順其自然EVO 閱讀(471) 評論(0) 編輯 收藏 所屬分類: 數據庫