调用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
以下将返回两个结果集,第一个结果是元数据,第二个是所需结果。有没有一种方法可以排除元数据结果?
答案 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