sql server 2008預存程序參數

來源:互聯網
上載者:User

標籤:sql server 2008預存程序

--使用預存程序參數
--包括輸入參數和輸出參數,以及參數的預設值
--指定參數名稱和資料類型
--輸入參數允許使用者將資料值傳遞到預存程序或者函數
--輸出參數允許預存程序將資料值或者遊標變數傳遞給使用者

--預存程序的參數在建立時應該在create procedure 和as關鍵值之間定義,每個參數都有指定參數名和資料類型,參數名必須以
 [email protected]開頭為首碼,各個參數定義之間用逗號隔開
 [email protected]_name data_type[=default][output]
 
 --執行個體:建立一個指定參數名稱和資料類型的預存程序
 use 學產生績管理系統
 go
 create procedure pro_教師資訊
 @age int,@sex cnhar(10)
 as
 select 教師編號,姓名,性別,年齡,籍貫
 from 教師資訊
 where 年齡[email protected] and 性別[email protected]
 
 --sql server2008提供了兩種傳遞參數的方式
 --按位置傳遞
 
 這種方式是在執行預存程序的語句中,直接給出參數的值,當有多個參數時,給出的參數的順序與建立預存程序的語句中的參數順序一致
 
 例如:
  exec pro_教師資訊 26,‘女‘
  
 --通過參數名傳遞
 
 這種方式是在執行預存程序的語句中,使用"參數名=參數值"的形式給出參數值,通過參數名傳遞參數的好處是,
 參數可以以任意順序給出
 例如:
  exec pro_教師資訊 @sex=‘女‘,@age=26

--輸入參數
輸入參數是指在預存程序中設定一個條件,在執行預存程序時為這個條件指定值,通過預存程序返回相應的資訊,使用
輸入參數可以向同一個預存程序多次尋找資料庫
use 學產生績管理系統
go
create procedure pro_班級資訊
@班級編號 nvarchar(20)
as
select S.學號,S.姓名,S.性別,S.所屬班級,C.班級名
from 學生資訊 S,班級資訊 C
where S.所屬班級=C.班級編號 and S.所屬班級[email protected]班級編號

--為參數指定預設值
在定義參數時可以為選擇性參數指定一個預設值,執行該預存程序,如果未指定其他值,則使用預設值
use 學產生績管理系統
go
create procedure pro_成績資訊
@分數 nvarchar(50) =‘60‘
as
select S.學號,S.姓名,S.性別,S.所屬班級,G.成績編號,G.考試編號,G.課程編號,G.分數
from 學生資訊 S,成績資訊 G
where S.學號=G.學生編號 and G.分數>@分數

exec pro_成績資訊

--輸出參數
use 學產生績管理系統
go
create procedure pro_TeacherName
@學生名稱 nvarchar(20)=‘hephec‘
@輔導員名稱 nvarchar(20) output
as
 select @輔導員名稱=T.姓名
 from 學生資訊 S,班級資訊 C,輔導員資訊 T
 where S.所屬班級=C.班級資訊 and C.輔導員=T.輔導員編號
 and S.姓名[email protected]學生名稱
go
為了接受預存程序的返回值,需要定義一個變數來存放返回參數的值,在該預存程序的調用語句中,必須為定義的變數加上output
關鍵字來聲明
declare @name nvarchar(20)
exec pro_TeacherName ‘hephec‘ @Name output
select ‘輔導員是:‘+@name as ‘結果‘
go

 
 

 

sql server 2008預存程序參數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.