MS SQL入門基礎 建立儲存過程

2021-09-05 17:08:51 字數 2229 閱讀 2027

在ms sql server 2000 中,建立乙個儲存過程有兩種方法:一種是使用transaction-sql 命令create procedure, 另一種是使用圖形化管理工具enterprise manager。 用transaction- sql 建立儲存過程是一種較為快速的方法,但對於初學者,使用enterprise manager 更易理解,更為簡單。

當建立儲存過程時,需要確定儲存過程的三個組成部分;

所有的輸入引數以及傳給呼叫者的輸出引數。 被執行的針對資料庫的操作語句,包括呼叫其它儲存過程的語句; 返回給呼叫者的狀態值,以指明呼叫是成功還是失敗。 12.2.1 使用enterprise manager 建立儲存過程

按照下述步驟用enterprise manager 建立乙個儲存過程:

啟動enterprise manager, 登入到要使用的伺服器。 選擇要建立儲存過程的資料庫,在左窗格中單擊stored procedure 資料夾,此時在右窗格中顯示該資料庫的所有儲存過程,如圖12-1 所示。 右擊stored procedure 資料夾,在彈出選單中選擇new stored procedure, 此時開啟建立儲存過程對話方塊,如圖12-2 所示。

通過運用create procedure 命令能夠建立儲存過程,在建立儲存過程之前,應該考慮到以下幾個方面:

在乙個批處理中,create procedure 語句不能與其它sql 語句合併在一起; 資料庫所有者具有預設的建立儲存過程的許可權,它可把該許可權傳遞給其它的使用者; 儲存過程作為資料庫物件其命名必須符合命名規則; 只能在當前資料庫中建立屬於當前資料庫的儲存過程。 用create procedure 建立儲存過程的語法規則如下:

create proc [ edure ] procedure_name [ ; number ]

[ [ varying ] [ = default ] [ output ]

] [ ,...n ]

[ with

][ for replication ]

as sql_statement [ ...n ]

各引數的含義如下:

procedure_name

是要建立的儲存過程的名字,它後面跟乙個可選項number, 它是乙個整數,用來區別一組同名的儲存過程。儲存過程的命名必須符合命名規則,在乙個資料庫中或對其所有者而言,儲存過程的名字必須惟一。 @parameter

是儲存過程的引數。在create procedure 語句中,可以宣告乙個或多個引數。當呼叫該儲存過程時,使用者必須給出所有的引數值,除非定義了引數的預設值。若引數的形式以 @parameter=value 出現,則引數的次序可以不同,否則使用者給出的引數值必須與引數列表中引數的順序保持一致。若某一引數以@parameter=value 形式給出,那麼其它引數也必須以該形式給出。乙個儲存過程至多有1024 個引數。 data_type

是引數的資料型別。在儲存過程中,所有的資料型別包括text 和image 都可被用作引數。但是,游標cursor 資料型別只能被用作output 引數。當定義游標資料型別時,也必須對varing 和output 關鍵字進行定義。對可能是游標型資料型別的output 引數而言,引數的最大數目沒有限制。 varying

指定由output 引數支援的結果集,僅應用於游標型引數。 default

是指引數的預設值。如果定義了預設值,那麼即使不給出引數值,則該儲存過程仍能被呼叫。預設值必須是常數,或者是空值。 output

表明該引數是乙個返回引數。用output 引數可以向呼叫者返回資訊。text 型別引數不能用作output 引數。 recompile

指明sql server 並不儲存該儲存過程的執行計畫,該儲存過程每執行一次都又要重新編譯。 encryption

表明sql server 加密了syscomments 表,該錶的text 欄位是包含有create procedure語句的儲存過程文字,使用該關鍵字無法通過檢視syscomments 表來檢視儲存過程內容。 for replication

選項指明了為複製建立的儲存過程不能在訂購伺服器上執行,只有在建立過濾儲存過程時(僅當進行資料複製時過濾儲存過程才被執行),才使用該選項。for replication與with recompile 選項是互不相容的。 as

指明該儲存過程將要執行的動作。 sql_statement

是任何數量和型別的包含在儲存過程中的sql 語句。

另外應該指出,乙個儲存過程的最大尺寸為128m, 使用者定義的儲存過程必須建立在當前資料庫中。

下面將給出幾個例子,用來詳細介紹如何建立包含有各種保留字的儲存過程。

MS SQL入門基礎 儲存過程概述

在大型資料庫系統中,儲存過程和觸發器具有很重要的作用。無論是儲存過程還是觸發器,都是sql 語句和流程控制語句的集合。就 本質而言,觸發器也是一種儲存過程。儲存過程在運算時生成執行方式,所以,以後對其再執行時其執行速度很快。sql server 2000 不僅提供了使用者自定義儲存過程的功能,而且也...

MSSQL儲存過程

sqlserver 帶有返回值,儲存過程同時新增兩張表,並將第一張表的主鍵插入第二張表當中 2010 07 04 22 00 55 分類 sql 字型大小 訂閱 sql server 中,可以使用 scope identity identity ident current 來取得最後插入記錄的值值,...

MS SQL入門基礎 儲存查詢結果

查詢的資訊往往需要儲存下來,以便使用。在用select 語句查詢資料時,可以設定將資料儲存到乙個新建的表中或變數中。10.6.1 儲存查詢結果到表中 使用select into 語句可以將查詢結果儲存到乙個新建的資料庫表或臨時表中。如果要將查詢結果儲存到乙個表而不是臨時表中,那麼在使用select ...