建立存儲過程 存儲過程可以達到以下目的: · 帶參數。 · 返回狀態值。 · 調用其它存儲過程。 · 在遠程服務器上執行。 存儲過程在“sysobjects”系統表中有一個表項,其類型為“P”。存儲過程的文本存儲在“syscomments”系統表中。創建存儲過程需要使用Transact SQL命令CREATE PROCEDURE。 例如: USE pubs GO
CREATE PROCEDURE ap_GetAuthorsForPublisher AS SELECT a.au_lname,a.au_fname FROM authors a, titleauthor ta, titles t, publishers p WHERE a.au_id = ta.Au_id AND ta.Title_id = t.title_id AND t.pub_id = p.pub_id AND p.pub_name = ’New Moon Books’ GO
給參數一個缺省值 用戶還可以為存儲過程中的參數定義缺省值。當在執行時沒有提供所需的參數時,系統就使用缺省值作為參數。如果既沒有定義缺省值,又沒有在執行時提供參數,則SQL Server就會返回一個錯誤。在存儲過程中定義缺省值,并使用一些邏輯檢測是否指定了參數從而采取相應的行動,這是一種很好的習慣。 例如: USE pubs GO
CREATE PROCEDURE ap_GetAuthorsForPublisher @PublisherName varchar(40) = ‘New Moon Books’ AS SELECT a.au_lname,a.au_fname FROM authors a, titleauthor ta, titles t, publishers p WHERE a.au_id = ta.Au_id AND ta.Title_id = t.title_id AND t.pub_id = p.pub_id AND p.pub_name = @PublisherName GO