Pas*_*per 2 sql-server stored-procedures t-sql
我有一个存储过程,它生成一个查询字符串,然后执行它
EXECUTE SP_EXECUTESQL @Query
Run Code Online (Sandbox Code Playgroud)
例如,查询是:Select Name, Age from tableA,非常简单。
但是如何从SP_EXECUTESQL(到变量中?)获取结果集,然后在我的存储过程中将其作为结果集返回?
您可以使用表变量来保存动态 SQL 调用的结果,直到您准备好退出存储过程。在从存储过程返回之前,从表变量中选择数据。
DROP PROCEDURE IF EXISTS dbo.MyProc;
GO
CREATE PROCEDURE dbo.MyProc
AS
BEGIN
--Declare Table variable to hold results of query
DECLARE @Results TABLE (ResultText VARCHAR(500));
DECLARE @Query NVARCHAR(30);
--This is the query
SET @Query = 'select @@version'
--Insert the results of the dynamic SQL execution into the table variable
INSERT INTO @Results
EXECUTE SP_EXECUTESQL @Query
--Do more stored procedure logic
--Finally, select the results of the table variable
SELECT *
FROM @Results
END
go
EXEC dbo.MyProc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6969 次 |
| 最近记录: |