【问题标题】:Is there a way to exclude the the metadata columns result when using sp_prepare使用 sp_prepare 时有没有办法排除元数据列结果
【发布时间】:2019-03-29 10:48:59
【问题描述】:

有没有办法在调用 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

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

【问题讨论】:

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


    【解决方案1】:

    避免将结果集返回给客户端的方法是使用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
    

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 2013-09-22
      • 2020-09-08
      • 2019-07-28
      • 2023-01-24
      • 2020-12-15
      • 2013-11-16
      • 1970-01-01
      • 2015-08-26
      相关资源
      最近更新 更多