您可以使用T-SQL(Transact-SQL)将动态SQL的结果写入临时表
sp_executesql
执行动态SQL,并将结果集插入临时表。假设您有一个包含数据的表source_table
,并将其结果写入临时表#temp_table
。
DECLARE @sql NVARCHAR(MAX);
DECLARE @columns NVARCHAR(MAX);
-- 获取列名列表
SELECT @columns = COALESCE(@columns + ', ', '') + QUOTENAME(column_name)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'source_table';
-- 构建动态SQL查询
SET @sql = N'SELECT ' + @columns + N' FROM source_table';
-- 创建临时表
CREATE TABLE #temp_table (
-- 使用实际的列名和数据类型填充以下字段
column1 datatype,
column2 datatype,
...
);
-- 将动态SQL查询的结果插入临时表
INSERT INTO #temp_table
EXEC sp_executesql @sql;
-- 查询临时表中的数据
SELECT * FROM #temp_table;
请注意,您需要根据实际表结构和需求更改示例中的列名和数据类型。
DECLARE @sql NVARCHAR(MAX);
DECLARE @columns NVARCHAR(MAX);
-- 获取列名列表
SELECT @columns = COALESCE(@columns + ', ', '') + QUOTENAME(column_name)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'source_table';
-- 构建动态SQL查询
SET @sql = N'SELECT ' + @columns + N' FROM source_table';
-- 创建表变量
DECLARE @table_var TABLE (
-- 使用实际的列名和数据类型填充以下字段
column1 datatype,
column2 datatype,
...
);
-- 将动态SQL查询的结果插入表变量
INSERT INTO @table_var
EXEC sp_executesql @sql;
-- 创建临时表
CREATE TABLE #temp_table (
-- 使用实际的列名和数据类型填充以下字段
column1 datatype,
column2 datatype,
...
);
-- 将表变量的数据插入临时表
INSERT INTO #temp_table
SELECT * FROM @table_var;
-- 查询临时表中的数据
SELECT * FROM #temp_table;
同样,请根据您的实际表结构和需求更改示例中的列名和数据类型。
领取专属 10元无门槛券
手把手带您无忧上云