VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
當前位置:
魔兽世界wow > 數據庫 > T-SQL >
  • sql語句大全之MSSQL sql存儲過程創建簡介及應用舉

  • 2019-05-03 14:52 來源:未知

魔兽世界wow www.geyjm.icu MSSQL存儲過程簡介


存儲過程的概念:我們將一組常用、經常重復使用的sql,采用一個包名進行定義,并將其放入數據庫中,作為DB服務器中的一個對象,對外服務,我們將此包稱之為”存儲過程”。

存儲過程的優點:
1 存儲過程作為服務器對象,所以運行存儲過程中的sql塊,通常比sql塊速度更快,效率更高。
2 存儲過程將sql塊存儲在數據庫對象中,減少了客戶端同服務器端通信的數據塊大小,減輕網絡瀏覽。
3 存儲過程將sql塊封裝為一個包,增加了sql代碼的可讀性和sql代碼調試的便利性。
4 存儲過程作為db服務器中的一個對象,我們可以通過相應的權限設置,來限制客戶端操作數據庫的權限,增加db服務器的安全性。



存儲過程的缺點:
1 存儲過程作為db服務器對象,在后臺進行大量的運算,加大了DB服務器的壓力。
2 存儲過程作為db服務器對象,里面包含了不同類型的sql語法,所以存儲過程不方便不同類型數據庫的移植操作。
3 對應用系統而言,由于業務邏輯存在程序代碼和存儲過程中,所以加大了應用程序的維護難度。

 



存儲過程的應用場景:
1 數據庫倉庫抽取數據
2 超大型報表獲取獲取
3 超復雜的sql業務邏輯代碼編寫

MSSQL存儲過程舉例應用

 


mssql 存儲過程語法:

create proc 存儲過程名稱 
參數名1 參數類型 [參數默認值] [是否為輸出參數],
參數名2 參數類型 [參數默認值] [是否為輸出參數]
...
 [with {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
as 
/*sql 代碼塊*/

存儲過程名稱最大長度不能超過256個字符
with recompile:代表每次調用存儲過程,db服務器都為對存儲過程進行重編譯,清除buffer pool中的緩存信息
with ENCRYPTION:加密存儲過程
with recompile, ENCRYPTION:重編譯存儲過程和加密存儲過程


  create table A (keyId int)
  insert into A(keyId)values(1),(10),(100),(1000),(10000),(100000),(100000),(2)
    
  /*創建存儲過程*/
   /*創建存儲過程查詢數據表數據*/
   create proc pr_showTableAInfo
   as
   begin
   select keyId from  A 
   end 
   go 
   /*執行存儲過程*/
   exec  pr_showTableAInfo 
   go
   
   /*創建存儲過程返回多張數據表數據*/
   create proc pr_showTableAInfo
   as
   begin
   select keyId from  A 
   select '這是第二張數據表' as table 
   end 
   go 
   /*執行存儲過程*/
   exec  pr_showTableAInfo 
   go 
   


/*創建帶輸出參數的存儲過程*/
create proc pr_t
@a int,
@b varchar(36) output
as
begin
set @b=NEWID() ----對output參數賦值
select 'test',@b as t ---返回數據表
end
go
/*調用帶output參數的存儲過程方法*/
declare @t2 varchar(36)
exec pr_t 1,@t2 output ----設置調用參數屬性為output,存儲過程中的數值,則會傳送至外部變量中
select @t2 as [backValue]
go


相關教程