首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 預存程序語法完整解析:參數、選項、限制與最佳實務

     編輯:關於SqlServer

完整語法

CREATE PROC[EDURE] procedure_name [; number]
    [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ]
    [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ]
    [ FOR REPLICATION ]
AS
    sql_statement [ ...n ]

關鍵參數詳細說明

元素說明
procedure_name名稱唯一,可加 `#`(區域暫存)或 `##`(全域暫存)。建議指定結構描述(如 `dbo.usp_Name`)。
;number選用整數,同名程序分組,單一 `DROP PROCEDURE name` 可刪除整組。
@parameter參數名稱以 `@` 開頭,最多 2100 個。預設只能替代常數,不可代替資料表/欄位名稱。
data_type所有型別皆可,含 `text/ntext/image`。`cursor` 僅限 `OUTPUT` 參數且需加 `VARYING`。
VARYING僅用於游標輸出參數,表示結果集動態構造。
default常數或 NULL。可含萬用字元(`%` `_` `[]` `[^]`)供 `LIKE` 使用。
OUTPUT標記為回傳參數,值可傳回呼叫端。`text/ntext/image` 可作 OUTPUT。
WITH RECOMPILE不快取計畫,每次執行重新編譯。適用非典型參數值、避免參數探查問題。
WITH ENCRYPTION加密 `syscomments` 文字,防止檢視定義。升級時利用加密註釋重建。
FOR REPLICATION僅複寫程序可執行,不可直接呼叫。不可與 `RECOMPILE` 合用。
AS sql_statement程序主體,可含多條 T-SQL 陳述式。

重要限制

預存程序**不得包含**建立資料庫物件的陳述式:

CREATE TABLE; CREATE VIEW; CREATE DEFAULT; CREATE RULE; CREATE TRIGGER; CREATE PROCEDURE

其他規範

  • 最大大小:128 MB。
  • 註解:`/* ... */` 可跨行。
  • 預存程序主要用於查詢與資料處理邏輯封裝。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved