預存程序——【牛腩新聞發布系統】,新聞發布系統

來源:互聯網
上載者:User

預存程序——【牛腩新聞發布系統】,新聞發布系統

一、什麼是預存程序?定義:          

  預存程序(Stored Procedure)是在大型資料庫中,將常用的或複雜的工作,預先用SQL語句寫好並用一個指定的名稱儲存起來,一次編譯後再次調用不需要編譯,使用者通過指定預存程序的名字並給出參數來執行。

分類:

系統預存程序:sp_開頭

擴充預存程序:xp_開頭

使用者自訂預存程序:

推薦命名文法:[proc] [MainTableName] By [FieldName(optional)] [Action]

        首碼必須有proc ,預存程序訪問的對象,可選欄位名是條件子句,最後的動詞是執行的任務。例子:procClientRateSelect

        注意:不推薦命名為sp_為首碼,因為這樣SQL Server會首先尋找系統預存程序,會導致運行緩慢



二、一般SQL語句與預存程序的區別

1.提高效能,預存程序只需編譯一次,一般SQL執行一次編譯一次,可以提高資料庫執行速度。

2.封裝特性,可以將複雜的資料庫操作(增、刪、改、查)用預存程序封裝起來,與資料庫提供的事務結合。

3.可重複使用,減少資料庫開發人員工作量。

4.安全性高,只有設定的使用者具有預存程序使用權。


三、預存程序執行個體


1.SQLHelper調用預存程序

<span style="font-size:18px;"> public DataTable test(string procName)        {            DataTable dt = new DataTable();            cmd = new SqlCommand(procName, GetConn());            cmd.CommandType  = CommandType.StoredProcedure;            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))            {                dt.Load(sdr);            }            return dt;        }</span>

主要是把 command命令裡面的procName賦值為預存程序名,把cmd.CommandType賦值為CommandType.StoredProcedure即可。



2.預存程序的書寫:

<span style="font-size:18px;">SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:王美-- Create date: 2015年2月6日23:11:35-- Description:取出最新10條新聞(所屬分類,新聞標題)-- =============================================CREATE PROCEDURE procNewsSelectNewNews -- Add the parameters for the stored procedure hereASBEGIN---選擇最上面的10條select top 10 n.id,n.title ,n.createTime ,c.[name]  from news n----類別表的id=新聞表裡面的id,內串連inner join category c on n.caId=c.id order by n.createTime desc---降序排列ENDGOexec procNewsSelectNewNews</span>



四、後記

  對於預存程序,使用的還不是很頻繁,對它的感官還不是很立體。如有不妥,還望指正,歡迎交流!

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.