首頁 >php教程 >PHP开发 >SQL Server之預存程序基礎知識

SQL Server之預存程序基礎知識

高洛峰
高洛峰原創
2016-12-14 13:40:301262瀏覽

什麼是預存程序呢?
預存程序就是作為可執行物件存放在資料庫中的一個或多個SQL指令。 
通俗來講:預存程序其實就是能完成一定操作的一組SQL語句。

那為什麼要用預存程序呢?
1.預存程序只在創造時進行編譯,以後每次執行預存程序都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用預存程序可提高資料庫執行速度。
2.當對資料庫進行複雜操作時,可將此複雜操作用預存程序封裝起來與資料庫提供的事務處理結合一起使用。
3.預存程序可以重複使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某些使用者才具有對指定預存程序的使用權

那預存程序怎麼用呢?
以下透過表格Student 來了解預存程序,因為是要了解預存程序的簡單用法,所以所有範例都很簡單。

SQL Server之預存程序基礎知識

無參數存儲過程:
選出Student表中的所有信息,

create proc StuProc
as      //此处 as 不可以省略不写
begin   //begin 和 end 是一对,不可以只写其中一个,但可以都不写
select S#,Sname,Sage,Ssex from student
end
go

有參數存儲過程:
全局變量
全局變量也稱為外部變量,是在函數的外部定義的,它的
全域變量

全局變量也稱為外部變量,是在函數的外部定義的,它的

全域變量

全局變量也稱為外部變量,是在函數的外部定義的,它的作用域為從變數定義處開始,到本程式檔案的末端。

選出指定姓名的學生資訊:

create proc StuProc
@sname varchar(100)   
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc '赵雷'   //执行语句

上面是在外部給變數賦值,也可以在內部直接給變數設定預設值

create proc StuProc
@sname varchar(100)='赵雷'
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc

也可以把變數的內容輸出,使用output
create proc StuProc
@sname varchar(100),
@IsRight int  output //传出参数
as 
if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)
set @IsRight =1
else
set @IsRight=0
go

declare @IsRight int 
exec StuProc '赵雷' , @IsRight output
select @IsRight

以上是全域變數,以下來了解局部變數

局部變數也稱為內部變數。局部變數是在函數內作定義說明的。其作用域僅限於函數內部,離開函數後再使用此變數是非法的。

局部變數的定義:必須先用Declare指令定以後才可以使用,declare{@變數名稱資料型別}

局部變數的賦值方法:set{@變數名稱=表達式}或select{@變數名稱=表達式}

局部變數的顯示:select @變數名稱

create proc StuProc
as 
declare @sname varchar(100)
set @sname='赵雷'
select S#,Sname,Sage,Ssex from student where sname=@sname
go

exec StuProc

那如果是要把局部變數的資料顯示出來怎麼辦呢? 🎜
create proc StuProc
as 
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go

exec StuProc
🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn