SQL Server存儲過程
在重構機房的時候,有非常多地方用到了存儲過程,在這裏小小的總結一下。
存儲過程(Stored Procedure)是一組為了完畢特定功能的SQL語句集,經編譯後存儲在數據庫中。用戶通過指定的存儲過程的名字並給出參數(假設該存儲過程帶有參數)來運行它。存儲過程通過將處理數據的程序從客戶應用程序移動到server,從而能夠減少網絡流量。並提高性能和數據完整性。
1、創建
主要有兩種方法:
(1)利用SQL Server Management Studio創建存儲過程
①單擊數據庫前的"+"號,然後單擊"可編程性"。找到"存儲過程",右擊"新建存儲過程",系統會自己主動生成一個模板。僅僅須要改動對應的方法就可以。
②利用T-SQL創建存儲過程
CREATE PROCEDURE 過程名 @Param 參數類型 ....... @Param 參數類型 output ...... AS BEGIN 命令行或命令塊 END
比如。創建加入用戶的存儲過程:
CREATE procedure [dbo].[pro_AddUser] @user_id varchar(11), @user_name varchar(11), @user_level varchar(10), @user_pwd varchar(11), @user_register varchar(10) as insert T_User values (@user_id ,@user_name,@user_level ,@user_pwd ,@user_register )
在這裏有須要註意的幾點:
*過程名:盡量以pro_或者proc_開頭。不建議使用使用sp_為前綴。由於SQL Server系統的存儲過程都是以sp_開頭,這樣在查找的時候會先查找系統自身的,減少查詢速度。
*BEGIN...END..之間的語句,主要是存儲過程要運行的任務:
查詢語句:SELECT
插入語句:INSERT
更新語句:UPDATE
刪除語句:DELETE
假設存儲過程返回輸出參數或0,則使用OUTPUT
2、調用
(1)利用T-SQL調用存儲過程
EXECUTE 過程名 [參數值。······]
(2)在client代碼端
D層代碼:
Public Function Add_User(enuser As Entity.E_User) As Boolean Implements IUser.Add_User Dim pt As SqlParameter() = {New SqlParameter("@user_id", enuser.UserID), _ New SqlParameter("@user_name", enuser.UserName), _ New SqlParameter("@user_level", enuser.Level), _ New SqlParameter("@user_pwd", enuser.UserPwd), _ New SqlParameter("@user_register", Entity.E_PubShare.str_id) } cmdText = "pro_AddUser" Return helper.ExecuteDataTable(cmdText, CommandType.Text, pt) End Function
SqlHelper類:
Public Function ExecuteDataTable(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal pt As SqlParameter()) As Boolean Using con As New SqlConnection(strCon) Dim cmd As SqlCommand = con.CreateCommand() cmd.CommandText = cmdText cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddRange(pt) Try con.Open() Return cmd.ExecuteNonQuery() cmd.Parameters.Clear() Catch ex As Exception Return Nothing Throw ex End Try End Using End Function
3、反思總結
存儲過程並不算難,可是我在學習的過程中還是出現了不少問題。歸根究竟是對SQL語言還不夠熟練。只是經過幾次卡殼總算是磕磕絆絆的了解的差點兒相同了,這也是我們重構機房的意義所在。把曾經學習到的知識真正運用到實踐中來,是一個查漏補缺完好知識網的過程。遇到問題是在所難免的,不要嫌麻煩,而要把它當成提高自己的機會,每一個細小的困難克服了,終於會實現一個大的飛躍。
SQL Server存儲過程