看一下:asp中调用有返回值的存储过程中碰到的奇怪问题
存储过程如下: 
 ----------------------------------------- 
 create      procedure   test 
 ( 
       @Num            varchar(50),                                     
       @Msg            varchar(200)   OUTPUT             
 ) 
 AS 
 BEGIN 
       if(@Num   =1) 
             begin 
                   set   @Msg   =    '你传入的是1 ' 
                   exec( 'print   1 ') 
             end 
       else   if(@Num   =2) 
             begin 
                   set   @Msg   =    '你传入的是2 ' 
                   exec( 'print   2 ') 
             end 
 END 
 -------------------------- 
 SQL中调用此存储过程语句: 
 declare   @Num            varchar(50) 
 declare   @Msg            varchar(200) 
 set   @Num   =    '2 ' 
 exec   test   @Num,@Msg   OUTPUT 
 print   @Msg   
 问题:在SQL中调用此存储过程不管@Num传入1还是2,@Msg变量中都会有值。 
 但在ASP中调此存储过程时@Msg变量的值则为空。如果把中间的那句exec( 'print   * ')去掉的话@Msg中就有值。加上这句话的话@Msg返回的值变为宽了。但在查询分析器中调用却始终有值。 
 高手们!谢谢了哦。!
------解决方案--------------------... 
 AS 
 set nocount on--试试 
 BEGIN 
 ....