小编Pet*_*son的帖子

从嵌套存储过程调用中抑制伪造结果集

根据要求,编辑以提供更多详细信息

我有一个存储过程(让我们调用它spOuter)沿着以下行:

ALTER PROCEDURE [dbo].[spOuter]
(@SelFromDateUTC smalldatetime  
,@SelToDateUTC smalldatetime  
,@SelDriverId int = null
) AS
DECLARE @SelDriverName varchar(40)
Set Nocount on

exec dbo.spInner --<<<<<<<<<<<<<<<<<<<<<<<<<<<

Select @SelDriverName = DriverName
  From dbo.tblDrivers
 Where DriverID = @SelDriverId

Set Nocount off  

Select @SelToDateUTC as @SelShiftDateUTC
      ,@SelDriverName  as SelDriverName
      , *
  From dbo.vwRptDriverProgress
 Where ActionTimeUTC between @SelFromDateUTC and @SelToDateUTC
   and DriverId = coalesce(@SelDriverId, DriverId)
 Order by DriverName,ActionTimeUTC,DriverLogId
Run Code Online (Sandbox Code Playgroud)

当我spInner从SSMS 运行时,它不会返回任何结果集.但是,当我运行它时,spOuter我得到两个结果集,一个来自spInner和一个spOuter(注释掉调用以spInner删除多余的结果集).

spInner 如下:

ALTER PROCEDURE …
Run Code Online (Sandbox Code Playgroud)

sql-server

5
推荐指数
1
解决办法
454
查看次数

标签 统计

sql-server ×1