如何使用动态查询插入表变量?

2023-11-21

我尝试使用临时表开发此存储过程,但这不起作用,因此我改用表变量。我需要对表变量执行临时动态查询,然后使用该表变量执行最终查询。问题是我收到错误“必须声明标量变量@clms”。我假设 Exec 没有表变量的范围?

DECLARE @qry nvarchar(4000)
DECLARE @clms TABLE (mastcatname nvarchar(50),engdtlbeta decimal (18,4))
SET @qry='INSERT INTO @clms 
          SELECT distinct replace(mastcatname, '' '', '''') as mastcatname, 
                 engdtlbeta 
          FROM vw_Scorecard 
          WHERE empsurveyid=' + cAST(@EmpSurveyID AS nvarchar(10)) + ' 
               AND UnitID IN (' + @UnitIDs + ') 
          ORDER BY engdtlbeta desc, MastCatName'

EXEC(@qry)

DECLARE @cols nvarchar(1000)
SELECT @cols=COALESCE (@cols + ',[' + mastcatname + ']', '[' + mastcatname + ']') 
FROM @clms


SET @qry='SELECT UnitName ,
                 ParentName, ' + @cols + ' 
          FROM (
                SELECT UnitName,
                    ParentName, 
                    ScoreAvg, 
                    replace(mastcatname, '' '','''') as mastcatname 
                FROM vw_Scorecard 
                WHERE UnitID IN (' + @UnitIDs + ') 
                    AND EmpSurveyID=' + cast(@EmpSurveyID as nvarchar(5)) + ' ) p
          PIVOT
            (SUM(ScoreAvg) FOR mastcatname in (' + @cols + ')) as pvt'

EXEC (@qry)

这是简单的最小示例。您可以使用INSERT EXEC陈述。关键是在动态查询内部和外部声明表变量。在动态查询结束时,只需从表变量中选择并将结果集插入到外部表变量中:

DECLARE @t TABLE ( id INT ) 

DECLARE @q NVARCHAR(MAX) = 'declare @t table(id int) 
                            insert into @t values(1),(2) 
                            select * from @t'

INSERT INTO @t
EXEC(@q)

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

如何使用动态查询插入表变量? 的相关文章

  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 查询嵌套查询结果中两列的位置

    我正在编写这样的查询 select from myTable where X in select X from Y and XX in select X from Y X 列和 XX 列的值必须位于同一查询的结果中 select X fro
  • 如何避免连接两个表时重复

    Student Table SID Name 1 A 2 B 3 C Marks Table id mark subject 1 50 physics 2 40 biology 1 50 chemistry 3 30 mathematics
  • 访问数据库 LIMIT 关键字

    我试图让我的页面列表功能在 ASP 中与 Access 数据库一起工作 但我不知道 Microsoft SQL 中 LIMIT 的替代方案 我已经尝试过 TOP 但这似乎不起作用 这是 MySQL 中使用的语句 SELECT FROM cu
  • SQL Server 2008 R2 内连接无法匹配 varchar 字段,因为它包含特殊字符

    我们正在将 Microsoft SQL Server 2008 R2 用于我们的经典 ASP 应用程序之一 我们有两张表 TableA TableB TableA有以下列 InstName varchar 1024 TableB有这些列 I
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • Allen Browne 的 ConcatRelated() 错误 3061:参数太少

    我正在尝试创建给定仓库的产品列表 Allen Browne 的 ConcatRelated 函数似乎是在链接变量相同时创建列表的经过验证的正确方法 但我无法让它工作 我已将我的信息分解为单个查询 qry Products SELECT qr
  • 如何授予 SQL Server 代理访问权限以便能够写入/修改系统文件?

    我的工作有一个存储过程 运行 BCP 来查询一些数据 如果我单独运行 QUERYOUT 命令 它就会起作用 但是 如果我尝试在作业中运行它 它会创建文件但 挂起 并且数据永远不会放入文件中 这会永远挂起 所以我通常终止 BCP exe 我的
  • 如何为“%abc%”搜索创建文本索引?

    我想对查询进行索引x like abc 如果我有一个如下表 create table t data varchar 100 我想创建一个索引以便能够有效地执行以下操作 select from t where contains abc 和这个
  • MySQL 5:我的 GROUP BY 字段的顺序重要吗?

    Peeps 我的 MySQL 查询中有一些聚合 计算字段 我的 GROUP BY 子句是动态生成的 具体取决于用户在 Web 表单中选择的选项 很好奇 GROUP BY 子句中列出的字段顺序是否会对计算产生任何影响 例如 SUM AVERA
  • 什么是动态 SQL 查询?何时需要使用动态 SQL 查询?

    什么是动态 SQL 查询 何时需要使用动态 SQL 查询 我正在使用 SQL Server 2005 这里有几篇文章 动态SQL简介 http www sqlteam com article introduction to dynamic
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • pyspark.sql.functions.window 函数的“startTime”参数和 window.start 有何作用?

    示例如下 df spark createDataFrame 1 2017 05 15 23 12 26 2 5 1 2017 05 09 15 26 58 3 5 1 2017 05 18 15 26 58 3 6 2 2017 05 15
  • 如何在postgresql中编写有关最大行数的约束?

    我认为这是一个很常见的问题 我有一张桌子user id INT 和一张桌子photo id BIGINT owner INT 所有者是一个参考user id 我想向表照片添加一个约束 以防止每个用户将超过 10 张照片输入数据库 写这个的最
  • 将自动递增值添加到只有一列的表中

    我需要创建一个基本上仅保留索引列表的表 因此 我创建了一个只有一个名为 id 的自动递增列的表 但是 我似乎无法隐式地将自动递增值添加到该表中 我知道通常当您在表中有这样一列 不仅仅是此列 时 您可以执行以下操作 插入表 col1 col2
  • 从一张表更新并插入另一张表

    我有两张桌子 table1 ID 代码 姓名 table2 ID 代码 姓名 具有相同的列 我想将数据从 table1 插入到 table2 或更新列 如果 table2 中存在 table1 ID table2 ID 执行此操作的简单方法
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions
  • 总结同一个 SQL 表上的两个条件

    给定一个 SQL 表 Transactions ID INT COMPANY ID INT STATUS INT where STATUS IN 0 1 表示免费交易并且STATUS IN 2 3 表示可计费交易 简单的 我希望 ANSI

随机推荐

  • 如何使用 spring boot 和 Liquibase 变更集 yaml 文件访问系统属性

    使用 Liquibase 管理数据库架构更改的 Spring Boot Java 应用程序是通过指定其运行环境的参数 例如 dev int 启动的 有相应的属性文件 例如 dev properties int properties 它们定义
  • 签入时 Visual Studio 崩溃

    当我每次尝试签入挂起的更改时 我的 Visual Studio 2013 都会崩溃 我该如何解决 崩溃日志 System UnauthorizedAccessException Package SccProviderPackage fail
  • OpenCV 结构化边缘检测器的模型文件

    OpenCV实现结构化边缘检测基于基于随机森林的方法概述 用于快速边缘检测的结构化森林 2013 作者 P Doll r 和 C Zitnick 作者已发表Matlab 的实现还有一个用于Python 两者还包含基于 BSDS500 数据集
  • i18n 用于选择框

    我有一个名为 Role 的模型 我正在表单中使用下面的助手 有没有办法将 name 属性的值更改为另一种语言 语言环境 de yml de role admin something editor something something 在模
  • 请求的纹理大小 [0x0] 无效。当我在浏览器中加载图像时出错

    调用预测函数时浏览器中的 Tensorflow js 错误 我正在使用 Node js 来运行 web 应用程序 这是我包含的脚本 我正在 Chrome 中运行 Node js 但无法解决该错误 该项目有 7 个类作为输出 是形状为 1x7
  • 在 C# 中使用 REF 和 OUT 关键字进行按引用传递与按值传递

    到目前为止我的理解如下 价值传递 按值传递意味着传递参数的副本 对该副本的更改不会更改原始版本 通过参考 通过引用传递意味着传递对原始内容的引用 对引用的更改会影响原始引用 参考关键字 REF 告诉编译器该对象在进入函数之前已初始化 REF
  • 如何处理列表推导式中的异常?

    我在 Python 中有一些列表理解 其中每次迭代都可能抛出异常 例如 如果我有 eggs 1 3 0 3 2 1 egg for egg in eggs 我会得到一个ZeroDivisionError第三个元素例外 如何处理此异常并继续执
  • HTML5 Colspan - 替代方案[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我在 HTML 的 td 标签之一中使用 colspan 我不想在 HTML 中使用 c
  • 带有外部 .jar 的 Java 命令行

    我使用 jar 开发一个项目来重用代码 所以我有一个名为 TOOLS jar 的 jar 并且我在文件 HelloWorld java 中开发了一个简单的应用程序 该应用程序从 TOOLS jar 引用我的包 TOOLS 我用这个命令行编译
  • python 输入 UnicodeDecodeError:

    蟒蛇3 x gt gt gt a input hope gt gt gt a hope gt gt gt b input h pe gt gt gt b h pe gt gt gt c input start typing h delete
  • 全局作用域与全局命名空间

    我看到了这两个短语的用法 全局范围和全局名称空间 它们之间有什么区别 在 C 中 每个名称都有其作用域 超出该作用域就不存在 范围可以通过多种方式定义 它可以通过以下方式定义名称空间 功能 classes并且只是 因此 全局或其他命名空间定
  • 旋转分类散景图的小刻度标签

    我正在尝试轮换专业 和短轴在 Bokeh 的多类别图中 类似于对主要刻度标签所做的操作 here并在 matplotlib 中完成here 当有多个类别时 它们的标签 文本经常会混淆在一起 从中汲取一些灵感有关分类数据的 Bokeh 文档结
  • 将字符串转换为整数[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 String 转换为 Int Hi 我在将字符串转换为整数时遇到以下问题 string str line Substring 0 1 This picks an integer at offs
  • 上传文件时出现错误“无法处理部件,因为未提供多部件配置”[重复]

    这个问题在这里已经有答案了 我试图通过 JSP 文件中的表单上传文件 但收到此错误 Servlet 已经具有 MultipartConfig 表示法 我正在使用 servlet 3 0 和 apache tomcat 8 错误信息 java
  • CSS 在容器内旋转元素

    如果你看一下 http jsfiddle net KA4dz 在此演示中 您可以清楚地看到内部元素由于旋转而到达外部元素的外部 请求是缩小内部元素 同时保持纵横比和中心位置 使其适合其容器 用例是用户可以手动旋转这样的内部元件 同时确保其保
  • 如何在 Linux 上将 googleTest 设置为共享库

    Debian 不再为 gTest 提供任何预编译包 他们建议您将该框架集成到项目的 makefile 中 但我想保持我的 makefile 干净 如何像以前的版本 在开始之前 请确保您已阅读并理解这篇来自谷歌的注释 本教程使 gtest 的
  • 在 Dynamics 2011 中调用对话框并向其传递多个 recordID

    我希望允许用户从联系人实体中选择一个或多个联系人 然后启动一个接受记录 ID 的对话框 这个想法是向联系人添加一些自定义配置 我目前在功能区按钮上有一个自定义操作 可以启动一个对话框 但它只接受一个记录 ID 我可以访问所选记录 ID 的列
  • 如何在 Razor 中定义方法?

    如何在 Razor 中定义方法 暂且不谈任何关于何时 如果有的话 应该完成的争论 功能就是你如何做 functions Add code here
  • VBA:将多个值传递给 Instr

    现在 我有一长串用户通过表单提交的 行业 值 我编写了一个宏 它将搜索这些值中的特定术语 并粘贴符合我的 可接受 行业值的小得多的列表的值 重点是将用户提交的所有当前行业值重新分类到我现有的分类法中 这是我的 If Then 语句目前的样子
  • 如何使用动态查询插入表变量?

    我尝试使用临时表开发此存储过程 但这不起作用 因此我改用表变量 我需要对表变量执行临时动态查询 然后使用该表变量执行最终查询 问题是我收到错误 必须声明标量变量 clms 我假设 Exec 没有表变量的范围 DECLARE qry nvar