D.使用OUTPUT参数
OUTPUT参数容许外部过程、批处理或多条Transact-SQL句子访问在过程执行期间设置的某个值。下边的示例创建一个储存过程(titles_sum),并使用一个可选的输入参数和一个输出参数。
首先,创建过程:
USEpubs
GO
IFEXISTS(SELECTnameFROMsysobjects
WHEREname='titles_sum'ANDtype='P')
DROPPROCEDUREtitles_sum
GO
USEpubs
GO
CREATEPROCEDUREtitles_sum@@TITLEvarchar(40)='%',@@SUMmoneyOUTPUT
AS
SELECT'TitleName'=title
FROMtitles
WHEREtitleLIKE@@TITLE
SELECT@@SUM=SUM(price)
FROMtitles
WHEREtitleLIKE@@TITLE
GO
接出来存储过程有没有返回值存储过程有没有返回值,将该OUTPUT参数用于控制流语言。
说明OUTPUT变量必须在创建表和使用该变量时都进行定义。
参数名和变量名不一定要匹配,不过数据类型和参数位置必须匹配(除非使用@@SUM=variable方式)。
DECLARE@@TOTALCOSTmoney
EXECUTEtitles_sum'The%',@@TOTALCOSTOUTPUT
IF@@TOTALCOST<200
BEGIN
PRINT''
PRINT'Allofthesetitlescanbepurchasedforlessthan$200.'
END
ELSE
SELECT'Thetotalcostofthesetitlesis$'
+RTRIM(CAST(@@TOTALCOSTASvarchar(20)))
下边是结果集:
TitleName
------------------------------------------------------------------------
TheBusyExecutive'sDatabaseGuide
TheGourmetMicrowave
ThePsychologyofComputerCooking
(3row(s)affected)
Warning,nullvalueeliminatedfromaggregate.
Allofthesetitlescanbepurchasedforlessthan$200.