當前位置:編程學習大全網 - 源碼下載 - 存儲過程的結構是什麽?

存儲過程的結構是什麽?

創建過程[所有者。]存儲過程名稱[;程序編號]

[(參數#1,…參數#1024)]

[與

{重新編譯|加密|重新編譯,加密}

]

[用於復制]

作為程序行

存儲過程名稱不能超過128個單詞。每個存儲過程中最多可以設置1024個參數。

(SQL server版或更高版本),可以按如下方式使用參數:

@參數名稱數據類型[變化] [=默認值] [輸出]

每個參數名前應該有壹個“@”符號,每個存儲過程的參數僅供程序內部使用。除了IMAGE,可以使用SQL Server支持的其他數據類型。

[=默認值]相當於建立數據庫時設置字段的默認值。這是該參數的默認值。【輸出】用於指定參數既有輸入值又有輸出值,即在調用這個存儲過程時,如果指定的參數值是我們需要輸入的參數,也需要在結果中輸出,那麽該項必須輸出,而如果只是作為輸出參數,可以使用CURSOR,同時在使用這個參數時,必須指定VARYING和OUTPUT兩個語句。

示例:

創建過程order_tot_amt @o_id int,@p_tot int output AS

SELECT @p_tot = sum(單價*數量)

來自訂單詳細信息

WHERE ordered=@o_id

例子表明:

這個例子是建立壹個簡單的存儲過程order_tot_amt。這個存儲過程根據用戶輸入的訂單ID號(@o_id)從orderdetails中計算出這個訂單的總銷售額[單價)*數量],這個金額通過參數@p_tot輸出給調用這個存儲過程的程序。

創建過程procedue_name

[@參數數據類型][輸出]

[with]{重新編譯|加密}

如同

sql _語句

解釋:

輸出:表示該參數是可返回的。

使用{重新編譯|加密}

Recompile:意味著每次執行這個存儲過程時都要重新編譯。

加密:創建的存儲過程的內容將被加密。

比如:

表書的內容如下

編號、標題和價格

001 C語言介紹$30

002 PowerBuilder報表開發52美元

示例1:查詢表書內容的存儲過程

創建過程查詢_圖書

如同

從書本中選擇*

執行查詢_圖書

示例2:

向book表中添加壹條記錄,查詢該表中所有圖書的總金額。

創建過程插入_書籍

@param1 char(10),@param2 varchar(20),@param3 money,@param4 money輸出

加密-加密。

如同

插入圖書(編號、書名、價格)值(@ param1,@ param2,@ param3)

select @ param 4 = sum(price)from book

實施示例:

申報@total_price金額

Exec insert_book '003 ',《Delphi控件開發指南》,$100,@total_price。

打印總量' is' +convert(varchar,@total_price)。

存儲過程的三個返回值:

1),用return返回壹個整數。

2)以輸出格式返回參數。

3)、記錄集

返回值之間的差異:

輸出和返回都可以作為批處理程序中的變量接收,記錄集被傳遞回執行批處理的客戶端。

示例3:

有兩個名為“產品”和“訂單”的表,其內容如下:

產品

產品編號產品名稱客戶訂單編號

001筆30

002刷子50

003鉛筆100

命令

產品編號客戶名稱客戶存款

001南山區30元

002羅湖區50元

003寶安區4元

請將兩個表連接成壹個臨時表,以序號為連接條件,只包含序號、產品名稱、客戶名稱、存款和總金額。

總金額=押金*訂單數,存放過程中放入臨時表。

代碼如下:

創建過程臨時_銷售

如同

選擇a .產品編號,a .產品名稱,b .客戶名稱,b .客戶存款,a .客戶訂單號* b .客戶存款作為總金額。

Into # templetable從產品a內部聯接訂單b上的a .產品編號= B .產品編號

如果@@error=0

打印“好”

其他

& ampn bsp打印“失敗”

  • 上一篇:百度地圖javascript api的開發 中地圖載入不出來只為什麽
  • 下一篇:用.bat關閉瑞星。該怎麽編寫呢?
  • copyright 2024編程學習大全網