您的位置:程序门 -> .net技术 -> c#



这两个存储过程有什么区别啊?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


这两个存储过程有什么区别啊?[已结贴,结贴人:jessie_yaya]
发表于:2007-03-21 13:59:07 楼主
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   不一样吗??
发表于:2007-03-21 14:13:101楼 得分:5
第一种应该是对的
@@sum=sum(price)  
把值付给了参数
   
*****************************************************************************
欢迎使用csdn论坛专用阅读器   :   csdn   reader(附全部源代码)  

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
发表于:2007-03-21 14:15:042楼 得分:15
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 '  

则是一样的.只是写法不同
发表于:2007-03-21 14:23:473楼 得分:0
明白了,谢谢^_^


快速检索

最新资讯
热门点击