本質上 Stored procedures (有時又稱 Sproc) 就是儲存在資料庫中的 Script 或 Batch,
撰寫 Sproc 並不是太難的一件事,
通常你會這樣查詢資料庫

Select * From Table

如何將它變成 Sproc? 以下是簡單的例子

Create Proc sp_SprocName1
As
  Select * From Table
Go

現在 Sproc 已成功的建立, 你可以試著去執行它

Exec sp_SprocName1

你可以為你的 Sproc 取任何的名字, 在 SQL 7.0 的命名原則以 128 個字元為限, SQL 並不規定 Stores procedure 之命名要以 sp_ 開頭, 但強烈建議你這麼做!

接下來我們再做些例子, 例如在查詢中加入 where 子句, Select * From Table Where Column1 = 0 , 這裡你是不是會覺得 Column1 的值如果可以改為一個輸入參數由我們輸入, 那就更加完美!

Create Proc sp_SprocName2
@MyInput int
As
  Select * From Table
  Where Column1 = @MyInput
Go

完整的參數宣告語法為
@parameter_name datatype [= default|Null] [Varying] [Output]

如果你未提供 default 值, 則這個參數會被假設為必要輸入的, 在宣告參數時你還必須指定資料型態, 應為合法的 SQL Server 資料型態

在 Sproc 接收到輸入值後, 便將它存放在 @MyInput 變數中, 變數以 @ 符號開頭, 以 @@ 開頭的則為全域變數,
你可以這麼執行這個 Sproc

Exec sp_SprocName2 0

我們再來看一個 Insert 的例子

Create Proc sp_SprocName3
  @Column1 varchar(20)
  @Column2 varchar(36) = Null
As
  Insert Into Table
  Values
    (@Column1, @Column2)
Go

在這例子中, Column2 的值即為選擇性輸入, 你可以這麼執行

Exec sp_SprocName3 'SomeString'

轉載:http://www.wretch.cc/blog/bigdstut/14437860

goodlucky 發表在 痞客邦 PIXNET 留言(0) 人氣()