隐藏sp_executesql的结果集



我试图运行sp_executesql,但我不想在结果集中显示结果,我不能使用变量,因为我的存储过程调用不同的数据源。所以我不能创建单个表,我该怎么办?有什么建议吗?

--INSERT INTO #TEMP  this what i want but didn't work i know
EXECUTE sp_executesql  @SQL,  N'@ENTITYID INT,@REPORTINGDATE DATE,@PREVIOUSREPORTINGDATE DATE',   
@ENTITYID    ,@REPORTINGDATE     ,@PREVIOUSREPORTINGDATE 

SET @tempSQL = 'SELECT '+@Select+' INTO #TEMP FROM ##TEMP '+@GROUPBY+' DROP TABLE ##TEMP '              

这不是为我工作SET NOEXEC ON,因为它只是编译不执行,在我的查询我使用##temp

这是我的查询

select A , B , SUM(C)
into ##temp
FROM
#tempp
GROUP BY
A , B 
select * from ##temp

在这里输入图像描述不需要第一个结果集

你可以在你的过程中添加@debug这样的参数,只有当你执行了@debug =1的过程

我的意思是你的程序应该是这样的:

ALTER PROCEDURE [dbo].[History]
(
@Id_user NVARCHAR(450),
@debug int
)
AS
BEGIN
SET NOCOUNT ON

begin tran az

if(@debug) =1
begin
select 'A', 'B' from yourtable where id = @Id_user
end

commit tran az

END

和执行过程与debug = 0将不会显示您的选择。

DECLARE @return_value int
EXEC    @return_value = [dbo].[History]
@Id_user = '122',
@debug  =0

之后你可以这样处理你的数据:

DECLARE @tempTable  TABLE(
ID_user  VARCHAR(100)

)

INSERT INTO @tempTable 
EXEC  @return_value = [dbo].[History]
@Id_user = '122',
@debug  =0

select * from @tempTable

最新更新