StoredPRocedure在企業級網站開發中的應用 Writen by pepper_dog999 我們都知道現在為企業開發的網站都以后臺結合數據庫的應用為主,但企業級的數據庫有它的幾點要求: 1、數據庫的性能要好。由于為企業開發的數據庫的記錄條的數目有可能很大,所以普通的數據庫服務器的性能就不能達到要求了,一般的要使用SQL Server和Orecal一級的數據庫服務器。 2、數據庫的安全性要求很高。因為企業的很多商業機密都在數據庫中,一旦數據庫遭到破壞或者是非法的入侵,都會帶來無法挽回的損失。 3、事務處理(Transaction)的重要性。在企業級的查詢、更改等事務中,均包括了復雜的事務處理,它涉及了鎖定(Lock)、回滾(RollBack)等重要的特性。 由上面的幾點可以看出,我們在進行企業級的網站數據庫的開發中必須做到高性能、高安全性、有事務處理的能力等幾個方面。這就需要我們將數據庫的執行的過程放到數據庫服務器上,對用戶隱藏具體的過程,僅讓用戶提供必要的參數,還要讓用戶不能直接的操作實際的表項。 我們使用SQL Server上的StoredProcedure就能夠很好的來完成這些要求。首先StoredProcedure是在服務器上進行了預編譯的,這樣它的性能就能夠得到保障。再者我們可以只對用戶給予執行StoredProcedure的權限,而不將相關表的權限賦予用戶。這樣的話用戶就不能直接的修改表了。下面我舉一個簡單的貍子來說明: 第一步:在SQL Server上創建一個數據庫,我們假設這個數據庫的名字是employee。創建一個用于保存員工信息的表member_info,使用下面的Tansact SQL: use employee go create table member_info ( mem_id int primary key clustered ,lst_name char(20) not null ,fir_name char(20) not null ,address char(255) default "no address" ) create index nonclustered index ncl_index_address on member_info(address) 第二步:在SQL Server上創建一個用戶db_user,密碼為空,給該用戶給予訪問employee數據庫的能力。 第三步:創建StoredProcedure,名稱為usp_add_info,用來向member_info表中輸入數據。使用下面的Transact_SQl: use employee go create procedure usp_add_info @inparam1 char(20) ,@inparam2 char(20) ,@inparam3 char(255) as insert into employee(lst_name,fir_name,address) value(@inparam1,@inparam2,@inparam3) 第四步:給予db_user用戶以執行usp_add_info的權限