首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TSQL从动态SQL写入临时表

您可以使用T-SQL(Transact-SQL)将动态SQL的结果写入临时表

  1. 使用sp_executesql执行动态SQL,并将结果集插入临时表。

假设您有一个包含数据的表source_table,并将其结果写入临时表#temp_table

代码语言:javascript
复制
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;

请注意,您需要根据实际表结构和需求更改示例中的列名和数据类型。

  1. 另一个方法是将动态SQL的结果先保存到表变量中,然后将表变量的数据插入临时表。
代码语言:javascript
复制
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;

同样,请根据您的实际表结构和需求更改示例中的列名和数据类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券