您好,登錄后才能下訂單哦!
存儲過程顧名思義,相當于一組為了完成特定功能的sql語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。
存儲過程的書寫格式:
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]
[(參數#1,…參數#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數
(SQL Server 7.0以上版本),參數的使用方法如下:
@參數名數據類型 [VARYING] [=內定值] [OUTPUT]
每個參數名前要有一個“@”符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
output:表示此參數是可傳回的
with {recompile|encryption}
recompile:表示每次執行此存儲過程時都重新編譯一次
encryption:所創建的存儲過程的內容會被加密
使用存儲過程有以下的優點:
* 存儲過程的能力大大增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算。
* 可保證數據的安全性和完整性。
# 通過存儲過程可以使沒有權限的用戶在控制之下間接地存取數據庫,從而保證數據的安全。
# 通過存儲過程可以使相關的動作在一起發生,從而可以維護數據庫的完整性。
* 再運行存儲過程前,數據庫已對其進行了語法和句法分析,并給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由于執行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執行。
* 可以降低網絡的通信量。
* 使體現企業規則的運算程序放入數據庫服務器中,以便:
# 集中控制。
# 當
企業規則發生變化時在服務器中改變存儲過程即可,無須修改任何應用程序。企業規則的特點是要經常變化,如果把體現企業規則的運算程序放入應用程序中,則當
企業規則發生變化時,就需要修改應用程序工作量非常之大(修改、發行和安裝應用程序)。如果把體現企業規則的運算放入存儲過程中,則當企業規則發生變化
時,只要修改存儲過程就可以了,應用程序無須任何變化。
php操作方法
mysql_query("call 存儲過程名稱")
觸發器
是mysql內部進行執行的,觸發器是與表有關的命名數據庫對象,當表上出現特定事件時,將激活該對象。例如當我們向某表插入一行數據時發生一個事件或者刪除某個記錄時觸發某個事件。
語法:
CREATE TRIGGER trigger_Name trigger_time trigger_event
ON tbl_Name FOR EACHROW trigger_stmt
trigger_time 是觸發器的動作時間。它可以是 BEFORE 或 AFTER ,以指明觸發器是在激活它的
語句之前或之后觸發。
trigger_event 指明了激活觸發器的語句的類型。trigger_event 可以是下述值之一:
INSERT:將新行插入表時激活觸發器,例如,通過 INSERT、LOADDATA 和 REPLACE 語句;
UPDATE:更改某一行時激活觸發器,例如,通過UPDATE語句;
DELETE:從表中刪除某一行時激活觸發器,例如,通過 DELETE 和 REPLACE 語句。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。