儲存過程定義

2022-02-07 05:04:14 字數 2753 閱讀 8250

@return_status

是乙個可選的整型變數,儲存儲存過程的返回狀態。這個變數在用於 execute 語句前,必須在批處理、儲存過程或函式中宣告過。

在用於喚醒呼叫標量值使用者定義函式時,@return_status 變數可以是任何標量資料型別。

procedure_name

是擬呼叫的儲存過程的完全合法或者不完全合法的名稱。過程名稱必須符合識別符號規則。有關更多資訊,請參見使用識別符號。無論伺服器的**頁或排序方式如何,擴充套件儲存過程的名稱總是區分大小寫。 

使用者可以執行在另一資料庫中建立的過程,只要該使用者擁有此過程或有在該資料庫中執行它的適當的許可權。使用者可以在另一台執行 microsoft® sql server™ 的伺服器上執行過程,只要該使用者有適當的許可權使用該伺服器(遠端訪問),並能在資料庫中執行該過程。如果指定了伺服器名稱但沒有指定資料庫名稱,sql server 會在使用者預設的資料庫中尋找該過程。

;number

是可選的整數,用於將相同名稱的過程進行組合,使得它們可以用一句 drop procedure 語句除去。該引數不能用於擴充套件儲存過程。

在同一應用程式中使用的過程一般都以該方式組合。例如,在訂購應用程式中使用的過程可以 orderproc;1、orderproc;2 等來命名。drop procedure orderproc 語句將除去整個組。在對過程分組後,不能除去組中的單個過程。例如,drop procedure orderproc;2 是不允許的。有關過程組的更多資訊,請參見 create procedure。

@procedure_name_var

是區域性定義變數名,代表儲存過程名稱。

@parameter

是過程引數,在 create procedure 語句中定義。引數名稱前必須加上符號 (@)。在以 @parameter_name=value 格式使用時,引數名稱和常量不一定按照 create procedure 語句中定義的順序出現。但是,如果有乙個引數使用 @parameter_name=value 格式,則其它所有引數都必須使用這種格式。

預設情況下,引數可為空。如果傳遞 null 引數值,且該引數用於 create 或 alter table 語句中不允許為 null 的列(例如,插入至不允許為 null 的列),sql server 就會報錯。為避免將 null 引數值傳遞給不允許為 null 的列,可以在過程中新增程式設計邏輯或採用預設值(使用 create 或 alter table 語句中的 default 關鍵字)。

value

是過程中引數的值。如果引數名稱沒有指定,引數值必須以 create procedure 語句中定義的順序給出。

如果引數值是乙個物件名稱、字串或通過資料庫名稱或所有者名稱進行限制,則整個名稱必須用單引號括起來。如果引數值是乙個關鍵字,則該關鍵字必須用雙引號括起來。

如果在 create procedure 語句中定義了預設值,使用者執行該過程時可以不必指定引數。如果該過程使用了帶 like 關鍵字的引數名稱,則預設值必須是常量,並且可以包含 %、_、[ ] 及 [^] 萬用字元。

預設值也可以為 null。通常,過程定義會指定當引數值為 null 時應該執行的操作。

@variable

是用來儲存引數或者返回引數的變數。

output

指定儲存過程必須返回乙個引數。該儲存過程的匹配引數也必須由關鍵字 output 建立。使用游標變數作引數時使用該關鍵字。

如果使用 output 引數,目的是在呼叫批處理或過程的其它語句中使用其返回值,則引數值必須作為變數傳遞(即 @parameter=@variable)。如果乙個引數在 create procedure 語句中不是定義為 output 引數,則對該引數指定 output 的過程不能執行。不能使用 output 將常量傳遞給儲存過程;返回引數需要變數名稱。在執行過程之前,必須宣告變數的資料型別並賦值。返回引數可以是 text 或 image 資料型別以外的任意資料型別。

default

根據過程的定義,提供引數的預設值。當過程需要的引數值沒有事先定義好的預設值,或缺少引數,或指定了 default 關鍵字,就會出錯。

n是佔位符,表示在它前面的專案可以多次重複執行。例如,execute 語句可以指定乙個或者多個 @parameter、value 或 @variable。

with recompile

強制編譯新的計畫。如果所提供的引數為非典型引數或者資料有很大的改變,使用該選項。在以後的程式執行中使用更改過的計畫。該選項不能用於擴充套件儲存過程。建議盡量少使用該選項,因為它消耗較多系統資源。

@string_variable

是區域性變數的名稱。@string_variable 可以是charvarcharncharnvarchar資料型別,最大值為伺服器的可用記憶體。如果字串長度超過 4,000 個字元,則把多個區域性變數串聯起來用於 execute 字串。有關系統提供的 sql server 資料型別更多的資訊,請參見資料型別

。 [n]'tsql_string'

是乙個常量,tsql_string 可以是nvarcharvarchar資料型別。如果包含 n,則該字串將解釋為nvarchar資料型別,最大值為伺服器的可用記憶體。如果字串長度超過 4,000 個字元,則把多個區域性變數串聯起來用於 execute 字串。

mysql定義過程 定義MySql儲存過程

建立乙個不帶返回值的儲存過程 delimiter drop procedure if exists proc name create procedureproc name in num1 int,in num2 int begin set a 2000000001 set d 20000001 se...

儲存過程的定義

一 定義 儲存過程可以一次性執行成批的sql語句,也叫批處理 優點 1 批處理,減少客戶與服務之間的交流次數 2 在伺服器端執行,移植性好 3 安全要求高的行業 4 包含流程控制結構的sql語句的集合 二 建立儲存過程 先宣告新的結束符 任選,但是避免在mysql環境下有特殊含義 delimiter...

儲存過程的定義

在學習程式過程之前,先了解下什麼是儲存過程?為什麼要用儲存過程,他有那些優點 定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就...