我在sqlserver中建立存储过程,想在asp.net中输入一个值给存储过程,然后,我如何再sqlserver中看到这个值,我用了print,可是不知道print到哪里去了!log里面找不着啊。具体如下
CREATE procedure bugadd
(
@BugDate[datetime]='',
@bugtime[varchar](30)='',
@note[nvarchar](500)='',
@processnote[nvarchar](500)='',
@operatorNo[char](10)='',
@ComponentNo[char](10)='',
@bugState[char](10)='',
@belongtodevice[char](10)=''
)
as
 insert into [devicemanagement].[dbo].[bugrecord]
([BugDate],
[bugtime],
[note],
[processnote],
[ComponentNo],
[bugState],
[operatorNo],
[belongtodevice]
)
values
(
@BugDate,
cast(@bugtime as datetime),
@note,
@processnote,
@ComponentNo,
@bugState,
@operatorNo,
@belongtodevice)
print @bugtime//就是要察看这个值,怎么才能看到阿?????????????
GO

解决方案 »

  1.   

    print @bugtime
    可以在SQL 查询分析器里执行的时候看到。但是该存储过程或SQL语句是要在查询分析器里执行时才看的到,而不是程序调用。如果LZ就上面的存储过程想查看某个值,可以用3种方式:
    1.在存储过程里设定一个输出参数,将你要看的值输出。
    2.将要看的值作为存储过程return返回
    3.将print @bugtime改为Select @bugtime as bugtime,然后程序执行这个存储过程返回的记录就是
      

  2.   

    print方式无法返回到客户端的。
    你可以为存储过程添加一个参数@msg varchar(100) output;
    然后在要输出的位置
    set @msg = @bugtime
    return;
    当然在你的调用存储过程的地方需要做一个获取@msg返回值,并显示的处理了。
      

  3.   

    在程序中调用存储过程当然看不到sql语句的print值啦,如果真需要看的话,应该把该值返回给程序,然后在程序中显示输出。具体办法就如二楼说的了,我就不重复了:)
      

  4.   

    2楼说的对,要用到输出参数,但是不要加return语句了,因为在存储过程中返回值只能是int类型,如果是别的类型的话就必须用输出参数了,只要在这个存储过程中给这个输出参数覆值后在客户端就可以接收到了.