这两个存储过程有什么区别啊?
CREATE procedure titles_sum
@@TITLE varchar(40)= '% ',
@@SUM MONEY output
as
select 'Tiltle Name '=title //与下面区别的地方
from titles
WHERE title like @@TITLE
SELECT @@SUM=sum(price) //与下面区别的地方
from titles
where title like @@TITLE
GO
CREATE procedure titles_sum2
@@TITLE varchar(40)= '% ',
@@SUM MONEY output
as
select title as 'Tiltle Name ' //
from titles
where title like @@TITLE
select sum(price) as Sum //
from titles
where title like @@TITLE
GO
同样用这个存储过程调用的
CREATE PROCEDURE test
as
BEGIN
declare @totalcost money
execute titles_sum2 'The% ',@totalcost output
if @totalcost <20
begin
print ' '
print 'all of these titles can be purchased for less than $220. '
end
else
select 'The tatal cost of these titles is $ '+rtrim(cast(@totalcost as varchar(20)))
end
GO
为什么产生的结果不一样??
select sum(price) as Sum 和select sum(price) as Sum 不一样吗??
------解决方案--------------------第一种应该是对的
@@SUM=sum(price)
把值付给了参数
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------SELECT @@SUM=sum(price) --这里说明是把sum(price)的结果给了变量@@SUM
select sum(price) as Sum --这里只是把sum(price)做为Sum来显示,并没有给@@SUM
而
select 'Tiltle Name '=title
和
select title as 'Tiltle Name '
则是一样的.只是写法不同