求教,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
Begin
Declare @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
------解决方案--------------------
'''+%+'''