儲存過程和變數

2022-03-31 13:27:41 字數 1900 閱讀 9888

在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...