动态查询结果存入临时表或表变量

2023-12-11

我有一个使用 sp_executesql 生成结果集的存储过程,结果中的列数可能有所不同,但形式为 Col1 Col2 Col3 等。

我需要将结果放入临时表或表变量中,以便我可以使用它。问题是我需要定义临时表的列,但我无法使用 sp_executesql 动态执行此操作,因为执行命令后临时表的范围会丢失。

我曾考虑过使用全局临时表的想法,因为范围允许动态创建它,但是,全局临时表很有可能通过此过程的并发执行进行更新。

有任何想法吗?


在这篇文章中的 @SQLMenace 的帮助下,我找到了一个适合我的解决方案T-SQL 动态 SQL 和临时表

简而言之,我需要首先在普通 SQL 中创建一个 #temp 表,然后我可以使用进一步的动态 SQL 语句更改结构。在此示例中,@colcount 设置为 6。当我实现此操作时,这将由另一个存储过程确定。

IF object_id('tempdb..#myTemp') IS NOT NULL
DROP TABLE #myTemp

CREATE TABLE #myTemp (id int IDENTITY(1,1) )
DECLARE @cmd nvarchar(max)
DECLARE @colcount int
SET @colcount = 6
DECLARE @counter int
SET @counter = 0
WHILE @counter < @colcount
    BEGIN
      SET @counter = @counter + 1
      SET @cmd = 'ALTER TABLE #myTemp  ADD col' + CAST(@counter AS varchar(4)) + ' NVARCHAR(MAX)'
      EXEC(@cmd)
    END

INSERT INTO #myTemp 
EXEC myProc @param1, @param2, @param3

SELECT * FROM #myTemp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态查询结果存入临时表或表变量 的相关文章

随机推荐

  • 为并行请求生成 oAuth 随机数

    我正在并行请求 Bitstamp API Simplified version var async require async var bitstamp require bitstamp async parallel bitstamp ba
  • Java中的构造函数同步

    有人告诉我 Java 构造函数是同步的 因此在构造过程中不能同时访问它 我想知道 如果我有一个构造函数将对象存储在映射中 而另一个线程在构造之前从该映射中检索它完成后 该线程会阻塞直到构造函数完成吗 让我用一些代码来演示 public cl
  • 如何让 pyinstaller 在 Ubuntu 上运行?

    我使用 Ubuntu 16 并安装了 Python 3 5 还安装了 pip3 并使用 pip3 安装了 PyInstaller 我无法运行 PyInstaller 每当我在终端中输入 pyinstaller 时 都会收到以下错误 我必须添
  • 如何在Basic中使用LibreOffice功能?

    I ve 在这里问关于这样做的好方法 现在我正在尝试以下代码在这里找到 并得到一些意想不到的错误 我想我没有以正确的方式使用它 任何想法 Sub Main Dim aResult Dim aFunc Dim oRange aFunc Get
  • 如何使用谷歌日历API从谷歌日历获取所有事件

    参考this我制作了一个应用程序 它使用 google api 从 google 日历事件获取信息 我使用了上面 URL 中给出的相同代码 现在有一个日历有 2 个日历名称 如 ME 和 XYZ 如果我使用我的电子邮件 ID 那么我只能获得
  • C++ 模板语法

    如何修复此语法错误 struct A template lt typename T gt void f template lt typename C typename U gt struct B void g U f lt C gt exp
  • javascript 通过引用传递解决方法

    假设我有一个数组 var animals dog cat rat 然后我定义var pets animals 然后我打电话pets shift 现在因为 javascript 是数组的引用传递 如果我现在调用animals I get ca
  • 如何在R中按组选择具有最小值且包含NA的行

    这是一个例子 set seed 123 data lt data frame X rep letters 1 3 each 4 Y sample 1 12 12 Z sample 1 100 12 data data 3 lt NA 我要意
  • WordPress 阻止用户发布全尺寸图像上传

    WordPress 有什么方法可以阻止内容编辑者在将图像上传到帖子时选择 全尺寸 选项吗 我希望他们只有 缩略图 中 和 大 选项 我曾经使用 Scissors 插件来执行此操作 但从 Wordpress 2 9 开始 该插件不再起作用 您
  • 如何修改Java声音文件的音高? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问我们的问题推荐或查找工具 库或最喜欢的场外资源与 Stack Overflow 无关 因为它们往往会吸引固执己见的答案和垃圾邮件 反而 描述问题以及迄今为止已采取哪些措施来解决该
  • 使用 SQLite3 + Mutagen 优化 Python 代码

    我正在改进一个开源音乐数 据库 该数据库从我的收藏中读取歌曲并将它们存储到 SQLite 数据库中 反过来 我可以利用数据库查找重复项 对我的收藏运行查询 并且 如果我愿意 在收藏中查找重复的歌曲 要从音乐文件中读取元数据 我正在利用Mut
  • 在单声道上获取带有转义斜杠的 Uri

    更新 修复现已进入mono 这是个好消息 更新 添加了修复片段处理的逻辑 我正在尝试使用 Uri 类在 Mono 上发送带有编码斜杠的请求 这基本上是 Mono 的等价物question 获取带有 url 编码斜杠的 URL 问题在于 与
  • 使用 Windows 身份验证通过 sqlsrv_connect 连接到 SQL Server

    The 官方指南使用 Microsoft 的 PHP 驱动程序连接到 SQL Server 似乎非常简单 因此我复制了大部分文本 server serverlocation prod database array Database gt t
  • PyInstaller 和 FastAPI(超出最大递归深度)

    我有一个 python 服务 使用fastapi作为网络界面 我需要制作一个可执行文件 因此我正在使用py安装程序 我不断收到以下错误 File miniconda3 lib python3 7 site packages PyInstal
  • 我应该在网站上使用相对 URL 还是绝对 URL?

    如果我不移动我的网站 有什么充分的理由说明为什么我应该使用绝对 URL 而不是相对 URL 无论您是否将内容从一个文件夹移动到另一个文件夹 绝对 URL 都将起作用 但是每种语言都有一种以这种或另一种方式引用基本 URL 的方法 例如 如果
  • Chrome 不支持 Webgl 2.0

    我的 chrome 显示 Webgl 2 0 支持 但在浏览器设置中禁用 或被扩展阻止 我努力了 1 在chrome settings中使用硬件加速 2 在 chrome flags 中启用 WEBGL 2 0 3 覆盖软件渲染列表 还有什
  • 权限被拒绝:“CreateObject”-ImageResizer

    我只是尝试安装 imageresizing net com 对象 我正在使用以下代码来创建该对象 set c CreateObject ImageResizer Configuration Config c BuildImage image
  • 从oracle存储过程中获取结果集

    我正在努力将存储过程从 SQL Server 转换为 Oracle 此存储过程提供直接结果集 我的意思是 如果您在例如 Management Studio 中调用存储过程 您将直接获得结果集 通过转换为Oracle 我遇到了Oracle中不
  • 如何使用角度材料实现范围内联日历?

    我想使用物料日历作为范围内联日历来显示和插入日期范围 当使用 mat date range picker 时 这只是工作 但不是内联 使用 mat calendar 时 它适用于内联 但不适用于范围 但是 如果我将 selectedRang
  • 动态查询结果存入临时表或表变量

    我有一个使用 sp executesql 生成结果集的存储过程 结果中的列数可能有所不同 但形式为 Col1 Col2 Col3 等 我需要将结果放入临时表或表变量中 以便我可以使用它 问题是我需要定义临时表的列 但我无法使用 sp exe