在查询中使用变量表名

2024-03-21

有时我需要运行相同的 SQL Server 脚本,每次将每个表名称中的一两个字母更改为每次运行脚本时都不同的值。

如何在脚本开头设置一次,这样我就不需要更改每个表名?

这是该脚本的一个简化示例,实际上它包含更多的表:

SELECT * FROM T_Atable1 
    WHERE ref IN (SELECT ref FROM T_Atable2)
         AND customer IN (SELECT customer FROM T_Atable3)

表名称的格式为 T_,其中:

  • "T_“是固定的
  • <id>是表名的变量部分。在上面的例子中=“A”
  • <table name>是表的固定名称。在上面的例子中,固定部分是“table1”,“table2”,“table3”

我怀疑我需要使用动态 SQL,但不知道如何执行此操作。

SQL Server 可以是 2003+ 的任何版本,具体取决于包含数据的系统。


您需要使用动态 SQL。 动态 SQL 就是您在 SQL 过程或应用程序中的字符串中“动态”构建查询,然后执行该字符串。

例如;

DECLARE @tableVar1 VARCHAR(255) = 'T_Atable1'
DECLARE @tableVar2 VARCHAR(255) = 'T_Atable2'
DECLARE @tableVar3 VARCHAR(255) = 'T_Atable3'


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

在查询中使用变量表名 的相关文章

随机推荐

  • 指定 nodeSize 时 d3 树的居中发生变化

    我为此使用 d3 v4 当我有 var treemap d3 tree size height width 这棵树很好地居中 但是 因为我想指定节点之间的垂直间距 当我将其更改为 var treemap d3 tree size heigh
  • 适合程序员的 TCP/IP 网络书籍? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • React useEffect 钩子有条件地加载 onsnapshot

    我正在尝试执行以下操作 但似乎无法获得最合适的解决方案 在我的 React 应用程序 应用程序组件 的顶层 我正在加载 firebase 和 firestore 我有一个反应上下文 其中存储了我的身份验证信息 身份验证上下文不会立即加载 而
  • 在 Flexbox 中从纵向布局切换到横向布局

    我想实现以下Layout https i stack imgur com tOpuX png与弹性盒 您可以在图片中看到两个方向 左侧为纵向视图 右侧为横向视图 前提是我想让我的html尽可能短 如果可能的话 有没有办法用 Flex 来做到
  • 将 Outlook 邮件正文另存为 PDF

    我正在使用 Outlook 和 C 我的学校练习是在不使用额外软件的情况下将电子邮件正文转换为 pdf 就我而言 我想保留电子邮件文本格式 以便解决我的问题 我考虑将电子邮件正文转换为 RTF 文件 然后使用 C 使用 Word 应用程序打
  • Carbon createFromFormat 意外结果

    createFromFormat 结果提前一个月 var dump GET archive var dump Carbon createFromFormat m Y GET archive Result string 11 2015 len
  • 无法导入 gsutil

    我觉得我把一切都设置正确了 我遵循了这些指示 https developers google com storage docs gsutil install install 并从 tar 文件安装 我的主目录现在有一个文件夹 gsutil
  • cvxpy:“sum_entries”未定义

    我正在尝试使用 CVXPY 解决 Python 中的投资组合优化问题 但收到错误 sum entries is not Defined 我正在使用 Anaconda 2 7 和 Jupyter 笔记本 我已经使用 conda pip ins
  • 了解 Azure 事件中心分区使用者模式

    Azure 事件中心使用分区使用者模式中描述的docs https learn microsoft com en us azure event hubs event hubs features 当涉及到现实世界场景时 我在理解该模型的消费者
  • 如何比较2个整数是否相等?

    如何在 C 中比较两个整数 我有一个用户输入 ID 即int 然后我就有了一个属于我的结构一部分的联系 ID 联系 ID 是int also 我需要比较它们是否相同 才能知道它存在 我做了这样的事情 if user input id com
  • Ctrl+D 后如何重新启动 stdin?

    运行一个需要来自终端的输入的程序 我可以通过 Ctrl D 关闭 stdin 之后有什么办法重新打开标准输入吗 In linux questions tagged linux and on POSIXy systems in general
  • 根据远程主机名更改 tmux 窗格的背景颜色

    如果我在单个窗格中从 tmux ssh 到远程服务器 是否可以根据服务器名称更改窗格的背景颜色 假设我所有的产品服务器都以prod XYZ开发服务器以dev XYZ 如果我通过 ssh 连接到这两台服务器 我可以根据我所在的服务器类型为它们
  • 有没有办法用 CSS 动画制作省略号动画?

    我正在尝试制作省略号动画 并且想知道 CSS 动画是否可以实现 所以它可能就像 Loading Loading Loading Loading Loading 基本上就这样继续下去 有任何想法吗 编辑 像这样 http playground
  • 如何在 CoffeeScript 中传递两个匿名函数作为参数?

    我想传递两个匿名函数作为 jQuery 悬停的参数 如下所示 element hover function do stuff on mouseover function do stuff on mouseout 只需一个就很容易 hover
  • git 错误; RPC失败;结果=22,HTTP 代码=401

    我正在尝试将一些颠覆代码和历史记录放入 TFS 中 通过 GIT 似乎是一个快速的胜利 并按照以下网址中的步骤进行操作 http www incyclesoftware com 2013 08 how easy its to migrate
  • 使用参数添加和删除事件监听器

    我正在写一个普通 JavaScript工具 启用后将事件侦听器添加到传递给它的每个元素 我想做这样的事情 var do something function obj do something for var i 0 i lt arr len
  • 如何将变量从 PHP 传递到 Python?

    我可以从 a 传递一个变量吗 php脚本到Python反之亦然 例如 myPHPScript php hello hello myPythonScript py print get the result from hello variabl
  • Android Studio 错误:增量输出目录应设置为输出目录

    我导入了一个github项目 https github com caarmen poet assistant https github com caarmen poet assistant到我的 Android Studio 当我单击 Ma
  • 如何更改菜单栏的字体颜色?

    如何更改 QML 菜单项的文本颜色MenuBar import QtQuick 2 4 import QtQuick Controls 1 3 import QtQuick Window 2 2 import QtQuick Dialogs
  • 在查询中使用变量表名

    有时我需要运行相同的 SQL Server 脚本 每次将每个表名称中的一两个字母更改为每次运行脚本时都不同的值 如何在脚本开头设置一次 这样我就不需要更改每个表名 这是该脚本的一个简化示例 实际上它包含更多的表 SELECT FROM T