建立存储过程 存储过程可以达到以下目的: · 带参数。 · 返回状态值。 · 调用其它存储过程。 · 在远程服务器上执行。 存储过程在“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