使用sp_prepare时是否有一种方法可以排除元数据列的结果

时间:2019-03-29 10:48:59

标签: sql-server stored-procedures metadata sql-server-2017

调用sp_prepare时是否可以排除返回的元数据列?

示例:

CREATE OR ALTER PROCEDURE Test
AS
-- Prepare query
DECLARE @P1 int;  
EXEC sp_prepare @P1 output,   
    N'@Param int',  
    N'SELECT 1 as int;';

-- Return handle for calling application
SELECT @P1;

-- Unprepare the query
EXEC sp_unprepare @P1;

GO

EXEC Test

以下将返回两个结果集,第一个结果是元数据,第二个是所需结果。有没有一种方法可以排除元数据结果?

1 个答案:

答案 0 :(得分:2)

为避免将结果集返回给客户端的On方法是使用INSERT...EXEC将结果集插入到表变量或临时表中:

CREATE OR ALTER PROCEDURE Test
AS
-- Prepare query
DECLARE @P1 int;  
DECLARE @trash TABLE(int int);
INSERT INTO @trash
    EXEC sp_prepare @P1 output,   
        N'@Param int',  
        N'SELECT 1 as int;';

-- Return handle for calling application
SELECT @P1;

-- Unprepare the query
EXEC sp_unprepare @P1;
GO