Есть ли способ исключить результат столбцов метаданных при использовании sp_prepare - PullRequest
1 голос
/ 29 марта 2019

Есть ли способ исключить возвращаемые столбцы метаданных при вызове 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 Ответ

2 голосов
/ 29 марта 2019

Метод, позволяющий избежать возврата набора результатов клиенту, заключается в использовании 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
...