看一下: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
....