当前位置: 代码迷 >> Sql Server >> 求教,MS的存储过程中,如何没法返回值呢?
  详细解决方案

求教,MS的存储过程中,如何没法返回值呢?

热度:44   发布时间:2016-04-27 11:14:09.0
求教,MS的存储过程中,怎么没法返回值呢??
各位高手,情况是这样的:
我在一个ASP.NET页面中调用存储过程Pr_QueryDocument,需要返回一个记录集。
存储过程简化如下:
ALTER PROCEDURE [dbo].[Pr_QueryDocument] 
  @CategoryID int,
  @SN varchar(200),
  @Name varchar(200),
  @sDate varchar(50),
  @eDate varchar(50),
  @Sender varchar(200),
  @SavePlace varchar(50),
  @Cabinet int,
  @Status int
AS

Begin
Declare @Sel As varchar(400)
Set @Sel = 'Selcet * From Document'
Exec(@Sel)
End
其中最后一句改成 Exec sp_execute @Sel也无法返回值。
但是如果直接写成:
ALTER PROCEDURE [dbo].[Pr_QueryDocument] 
  @CategoryID int,
  @SN varchar(200),
  @Name varchar(200),
  @sDate varchar(50),
  @eDate varchar(50),
  @Sender varchar(200),
  @SavePlace varchar(50),
  @Cabinet int,
  @Status int
AS

Begin
  Selcet * From Document
End
又能返回值

请问这是怎么回事呢??
上面中的参数,为了测试暂时没有写入到Select中。因为这个过程是动态查询档案的,所以无法像第二种方法那样直接写查询语句。
在下在这里静候各位高手指导,不吝赐教啊!!

------解决方案--------------------
SQL code
BeginDeclare @Sel As string(400)Set @Sel = N'Selcet * From Document'Exec(@Sel)End
------解决方案--------------------
SQL code
Set @Sel = N'Selcet * From Document' + N'Where CategoryID = ' + @CategoryID--Where前面要用空格吧Set @Sel = N'Selcet * From Document' + N' Where CategoryID = ' + @CategoryID
------解决方案--------------------
'''+%+'''
  相关解决方案