在學校學習sql的時候很多概念和方法都是很模糊的,今天在公司實習的時候看到了一個存儲過程,借此自學鞏固一下。
存儲過程概念
存儲過程是SQL語句和可選控制流語句的預編譯集合,存儲在數據庫中,可由應用程序通過一個調用執行,而且允許用戶聲明變量、有條件執行以及其他強大的編程功能。這話比較簡單也較官方,而我對存儲過程的理解就是將固定的操作集放入數據庫去執行,但與此同時,它也有自己的數據類型、流程控制和輸入輸出等。
下面是自己寫的兩個小例子來加深印象。
實例(1):創建存儲過程
1 create Procedure Pro @SID varchar(10), --代號 @SName varchar(10), --名稱 @SType varchar(10), --類型 as begin declare @Status int, --狀態 declare @SQty varchar(10), --數量 set @Status=0 --狀態 set @SQty=0 --數量 select @SName=SName from test where Sid=@SID and @SType=SType if @Status=7 begin set @Status =@Status+'關閉'+char(10)+char(10) select @Status Status
19 return 20 end
執行Pro這個存儲過程,declare聲明一個變量用來接收執行過存儲過程後的返回值,@X代表一個變量。
實例(2):修改存儲過程並執行
alter Procedure Pro @SID int = 2, @SName varchar(10) = '%' as begin select * from test where Sid=@SID and @SType=SType execute Pro 2,'admin'