SQL Server 為代碼減負之存儲過程
存儲過程能夠用來提高數據庫的查詢效率。由於它事先被編譯過。被儲存於內存中,每次執行前。不必被從新編譯,所以效率非常高。
存儲過程是一組sql增刪改查的集合,假設程序中的一個功能涉及到對數據庫的多次操作。那麽就能夠事先編譯好存儲過程。以提高程序執行效率!
簡單查詢:
CREATE PROCEDURE sp_query_online_info AS SELECT *FROM T_OnLine_info GO
運行存儲過程:
EXEC sp_query_online_info
帶參數的存儲過程:
CREATE PROCEDURE insert_OnLine @cardno varchar(10), @ondate varchar(10),@ontime varchar(10),@AdminName varchar(10) AS INSERT INTO T_OnLine_info (cardNo,onDate,onTime,adminName) VALUES (@cardno,@ondate,@ontime,@AdminName ) GO
調用此存儲過程:
exec insert_OnLine '00001' ,'8/21/2014' ,'22:22:22', '劉穎
日結賬單涉及多張表的查詢,所以這裏用存儲過程再合適只是了
在這裏說一下,機房收費系統的日結賬單的邏輯。假設機房管理正規的話,會有一個固定的時間點,操作員(當天工作過的)來找管理員結賬,將手裏的錢交給管理員,並將操作員結賬信息記錄在數據庫中,記錄中包括當天此操作員經手的充值金額和退還金額,將全部操作員經手的充值金額和退還金額匯總後,就是今天日結賬單中的充值金額和退還金額。日結賬單中的消費金額從
可見日結賬單是涉及多張表的,在這裏用存儲過程在合適只是了
CREATE PROCEDURE create_DStatement AS DECLARE @SDate VARCHAR(10) ---結賬日期,也就是今天 DECLARE @DATE AS VARCHAR(10) ----離今天近期的日期 DECLARE @remainMoney numeric(18,0) ---昨日剩余金額 DECLARE @RechargeMoney numeric(18,0) ---今日充值金額 DECLARE @consumeMoney numeric(18,0) ---今日消費金額 DECLARE @cancelMoney numeric(18,0) ---今日退卡金額 DECLARE @sumMoney numeric(18,0) ---總金額 SET @SDate =CONVERT(VARCHAR(10),GETDATE(),20) [email protected]
那麽存儲過程怎樣在VB.net中調用呢?非常easy
運用存儲過程,使我的日結賬單的生成,比第一次機房的時候。相對簡單了非常多。
SQL Server 為代碼減負之存儲過程