问题标签 [dynamic-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
908 浏览

sql-server - 动态 SQL Server 问题

我想创建动态 SQL 代码来自动创建表复制。

我坚持如何使以下代码动态化,以便可以传入 SQL 变量并在代码中使用它们。我现在帮助自己搜索和更换'TODO:'零件,这不是很好......这是代码:

一个问题是我需要动态 SQL 块内的动态 SQL。如果有人可以帮助我使用变量转换此代码,我将不胜感激!

谢谢丹尼尔

0 投票
2 回答
1438 浏览

sql-server - MSSQL - 当列名动态时呈现数据

我正在向员工提交最终权威评估分数。每一行都是员工的数据,并且由于要评估的类别可以随时期而变化,因此列名不能在存储过程中硬编码。我已经设计了以下解决方案。

1 创建一个临时表
2 动态使用 Alter Table 命令添加所有适用的列(存储在 @ColumnNames 中)
3 在游标内使用动态 SQL 为每个获得正确分数的员工编写插入(IE N 员工意味着 N 插入)

问题是每 100 名员工大约需要 1 秒。这很快就变得不可接受了……</p>

有没有人对如何进行有更好的想法?删除光标(显然),并使用一个插入(也许选择进入)是我的第一个想法,也许是从动态创建的 XML 变量中读取......</p>

谢谢,

0 投票
1 回答
2499 浏览

oracle - Oracle:将名称值对展平到表中

我希望有人可以提供一些建议,以更轻松地解决此问题。我正在努力为一组高度规范化的数据创建一个平面视图。扁平化的目标是提供一个普通人可以用来开发报告的视图。源数据包含几个表,如下所示:

记录值表中的 variable_id 对应于原始输入流中的变量之一,例如地址或帐户余额。对于其中包含 12 个变量的输入记录,记录值表中将有 12 行。

原始过程的输入包括不同宽度和变量名称的记录。这些被拆分为 record_values 表中的名称/值元组。我正在编写一个程序来将变量重新组合成一个看起来像的记录

我目前的方法是通过查找给定运行集的唯一变量来动态构建表(这里的细节不重要),然后构建将创建表的 SQL 字符串。

我的挑战是如何有效地从原始数据加载这个生成的工作表。由于变量的名称和数量因 run_id 而异,我能想到的唯一方法是通过以下方式:

这将永远运行,因为父表有 100 的数百万行。

有没有人知道如何生成一种我可以用来对每个目标行进行一次更新的方法?

以免有人跳上原始表格的设计——这样做是有商业原因的。我不喜欢它,但这样做是有充分理由的。

感谢您提供的任何想法。

安德鲁

0 投票
4 回答
10280 浏览

sql - sql 问题 .. 如何动态地将列添加到 sql 查询结果集中?

我正在编写一份报告以返回有关我数据库中对象(“文件”)的详细信息。我的应用程序允许用户创建自己的标志以用于文件对象。标志基本上由一个名称组成,然后标志实例存储一个位值以指示它是否为父文件对象设置。

我想编写一个查询,该查询返回数据库中每个文件的一行,其中结果集中的前几列包含文件详细信息(id、名称、大小等),其余列是标志名称,并返回位值指示是否为给定的文件行设置了标志。

那有意义吗?我该如何编写查询?

谢谢你的帮助。

编辑:澄清..

作为此查询的一部分,我需要运行一个子查询来返回用户创建的标志(我在设计时不知道这些),然后在主查询中合并检查每个标志值以返回详细信息关于文件。

简化架构如下:

  • 文件 {Id,名称}
  • 标记 {Id,名称}
  • FileFlags {FileId, FlagId} - 此表中的一行表示为文件设置了标志

我需要查询来返回一个带有如下列的结果集:

FileId 文件 名 Flag1Name Flag2Name .... FlagNName

0 投票
10 回答
319783 浏览

tsql - 如何将 sp_executesql 结果转换为变量?

我有一条需要执行的动态 SQL,然后我需要将结果存储到一个变量中。

我知道我可以使用sp_executesql,但找不到有关如何执行此操作的明确示例。

0 投票
3 回答
6153 浏览

sql-server-2005 - 如何在 T-SQL 中执行之前解析动态 SQL?

在执行之前,我需要知道如何解析查询以了解它是否构建良好。如果解析正确则执行它,如果不正确则丢弃它。

我无法使用 SET NOEXEC、SET PARSEONLY、TRY/CATCH 来完成此操作。

我在循环中使用动态 sql 。有时动态sql不正确不是因为我的错,而是因为数据库中存在的信息。出于这个原因,我想在执行之前对其进行解析。

0 投票
1 回答
4659 浏览

tsql - 如何在 SQL Server 2008 函数中动态生成表列定义

在 SQL Server 2008 中我有一种情况,我需要返回一个动态生成的表,并且列也是动态生成的。

这一切都是由查询生成的,因为我从一个 id 开始,然后我得到列名和类型,这就是强制转换的原因。

以下是最终查询,在一种情况下将返回我想要的表,但这个类似的查询可用于返回多个表。

这目前在 C# 中实现,但我希望它应该在存储过程或函数中可行,但是,我不确定如何进行多个查询来构建此查询,然后返回表。

谢谢你。

更新:如果我有一张包含汽车制造商的表格,并且我想要通用汽车制造的汽车的所有属性。我会查找汽车的信息,用它来获取所有汽车制造商,这将是通用汽车,然后我想获取通用汽车制造的所有汽车的信息,但是,由于信息是动态生成的列是不同的。那就是我所在的地方,需要动态生成这个表。我很好奇我是否可以调用 Web 服务,获取动态生成的查询,然后让存储过程或函数执行该查询。

更新 2:获得此表后的下一步是,我需要将汽车上的所有选项(在这种情况下)相加,以确定汽车的实际价格。这就是为什么它需要采用表格格式。此时,我正在查看 GM 制造的汽车,但我可以对 SeaRay 制造的船只进行另一个查询,即使船上的表列与汽车不同,查询也应该工作相同。

0 投票
1 回答
16644 浏览

sql - 为什么使用 EXECUTE IMMEDIATE 运行此查询会导致它失败?

我正在编写一个需要动态生成一些查询的 PL/SQL 过程,其中一个涉及使用作为参数的查询的结果创建一个临时表。

它可以正确编译,但即使是非常简单的查询,例如:

它抛出ORA-00911: invalid character。如果我手动运行创建的查询,它会正确运行。在这一点上,我能够确定是什么导致了问题。

0 投票
2 回答
14458 浏览

oracle - 如何使用 EXECUTE IMMEDIATE 获取记录?

我有一堆带有签名的函数,例如:

我有一个从这堆函数中检索数据的函数:

但此代码因 ORA-01007 '变量不在选择列表中'而失败。
我怎样才能重写语句?

0 投票
3 回答
3976 浏览

sql - 创建触发器动态

我使用 MS SQL 2008,我想在动态创建的数据库中创建触发器。

创建数据库是在另一个数据库的存储过程中调用的,并且运行良好,但是当我想添加触发器或存储过程时,执行失败。

如果我尝试使用

我得到:

'GO' 附近的语法错误

如果我删除“USE ...”,触发器将在错误的数据库中创建。

有什么技巧可以避免我的问题吗?

谢谢