在sql server中,可以定義子程式存放在資料庫中,這樣子程式稱為儲存過程
sql server中支援以下幾種型別的儲存過程
1,系統儲存過程(以「sp_」為字首,儲存在master裡面)
2,本地儲存過程(儲存在使用者自定義的資料庫中)
3,擴充套件儲存過程(以「xp_」為字首,儲存在master裡面)
4,臨時儲存過程(以#開頭)
注:使用者定義的儲存過程不能以sp/xp開頭
建立儲存過程
create procedure 儲存過程名 as sql語句
執行儲存過程
exec(execute) 儲存過程名
修改儲存過程
alter proc 儲存過程名 as sql語句
刪除儲存過程
drop procedure 儲存過程名
檢視儲存過程
sp_helptext 檢視儲存過程的定義
sp_help 檢視儲存過程有關資訊
sp_depends 檢視儲存過程所依據的物件
sp_rename 儲存過程原名,儲存過程新名
儲存過程中引數的使用
儲存過程可以帶乙個或多個輸入引數
create procedure 儲存過程名
(@ 引數名 資料型別[=預設值])
as sql語句
執行帶引數的儲存過程
①使用引數名傳遞數值
execute 儲存過程名 [@引數名=引數值]
exec p_a @sname='aaa',@pwd='123'
②按引數位置傳遞引數
execute 儲存過程名 引數值1,引數值2
exec p_a 'aaa','123'
加密儲存過程
create procedure p_mi (引數組) with encryption----加密 as sql語句
帶輸出引數的儲存過程-----從儲存過程中返回乙個或多個值
create procedure 儲存過程名 @引數名 資料型別 output as sql語句
變數t-sql中變數分為區域性變數和全域性變數
宣告區域性變數 declare 以@開頭的變數名 型別(長度)
區域性變數賦值 set 區域性變數名=值
注:區域性變數和賦值必須分開
全域性變數 以@@開頭是sql系統內部事先定義好的變數
運算子:
算數運算子:+,-,*,/,%
賦值:=
比較:>,<.....
邏輯運算子:
all,and,any,some,betwwen,exists,in,like,not,or
流程控制
begin...end:定義語句塊,相當於一對括號
break:退出最內層的while迴圈
continue:重新開始while迴圈
goto:無條件跳轉語句
if...else:滿足條件執行if否則執行else
return:無條件退出
waitfor:為語句的執行設定延遲
while:條件為真時執行語句
return:
declare @i int
set @i=0
while @i<10
begin
set @i=@i+1
if @1%3=0
return -----終止整個批處理
print @i --最終會輸入3
end使用return返回狀態值
儲存過程中 return於output區別
共同點:都返回值 (return只能返回int型別)
不同點:
output是定義變數是不是可以返回值
MySQL儲存過程 變數
mysql變數定義 選中資料庫,更改執行分隔符 use 資料庫名 修改執行分隔符 delimiter 第一種建立過程方法 帶引數方式 帶參方法一 variable 為變數名 int 為變數型別 in 輸入引數 表示該引數的值必須在呼叫儲存過程之前指定,在儲存過程中修改的值不能被返回 不會影響到傳入引...
使用變數 儲存過程和函式及變數的使用
儲存過程和函式是在資料庫中定義一些sql語句的集合,然後直接呼叫這些儲存過程和函式來執行已經定義好的sql語句。儲存過程和函式可以避免開發人員重複的編寫相同的sql語句。而且,儲存過程和函式是在mysql伺服器中儲存和執行的,可以減少客戶端和伺服器端的資料傳輸。一 建立儲存過程和函式 1.建立儲存過...
MySql 儲存過程 變數的定義和賦值
mysql 5.0 版本開始支援儲存過程。儲存過程 stored procedure 是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。儲存過程是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數 需要時 來呼叫執行。declare v...