构建 INSERT 语句值的动态列表

2023-11-29

我正在编写一个存储过程来创建一组DELETE管理员针对数据库运行的语句

作为“回滚”解决方案的一部分,我希望对于要删除的每一行,还分别创建一个相应的INSERT语句,以便运行脚本的人希望撤消,他们可以简单地对数据库运行插入语句

我的问题是,如果我有一个包含 8 列 (Col1..Col8) 的表,如何提取所有列的逗号分隔列表中的值,以便我最终得到

INSERT INTO Table VALUES (Col1value, Col2value, ...Col8value)

考虑以下命令:

SELECT 'SELECT ' +
    STUFF ((
        SELECT ', [' + name + ']'
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') +
    ' FROM [Table]'

这将建立一个SELECT特定表的语句。建立一个INSERT声明它可能看起来像这样:

SELECT @sql = 'INSERT INTO [Table] (' +
    STUFF ((
        SELECT ', [' + name + ']'
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') +
    ') VALUES (' +
    STUFF ((
        SELECT ', @' + name
        FROM syscolumns
        WHERE id = OBJECT_ID('Table') AND
            name <> 'me'
        FOR XML PATH('')), 1, 1, '') + ')'

当然有很多方法可以到达INSERT声明,根据您的喜好塑造它。

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

构建 INSERT 语句值的动态列表 的相关文章

  • ADO.NET 池连接无法重用

    我正在开发一个 ASP NET MVC 应用程序 该应用程序使用 EF 6 x 来处理我的 Azure SDL 数据库 最近 随着负载的增加 应用程序开始进入无法再与 SQL 服务器通信的状态 我可以看到有 100 个到我的数据库的活动连接
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • max()、分组依据和排序依据

    我有以下 SQL 语句 SELECT t client id max t points AS max FROM sessions GROUP BY t client id 它只是列出了客户 ID 以及他们所获得的最大积分 现在我想按 max
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • 过滤项目来源

    通过此代码 我设置了数据网格的 ItemsSource 不过 我有更多的 wpf 控件来过滤数据网格 例如从时间范围过滤数据网格 我可以为此编写一个新查询 但这似乎没有必要 因为数据已经可用 我只需要过滤它 最好的方法是什么 我能得到的任何
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • If Else 条件的 SQLite 语法

    我正在使用 SQLite 数据库 我的表有一个名为 密码 的文本列 早些时候 为了检索我用来执行简单操作的值select from myTable询问 但现在的要求是 如果Password值不是NULL那么我需要将其显示为 是 或 否 它是
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • ActiveRecord 查询,按关联排序,最后一个 has_many

    我试图列出所有Users by the created at最近创建的关联记录 通讯 列 到目前为止我所拥有的 User includes communications order communications created at IS
  • SQLite 中的累积求和值

    我正在尝试在 SQLite 中执行值的累积和 我最初只需要对一列求和并获得代码 SELECT t MyColumn SELECT Sum r KeyColumn1 FROM MyTable as r WHERE r Date lt t Da
  • SQL Server中主键和唯一索引的区别[重复]

    这个问题在这里已经有答案了 我的公司目前正在重写我们最近获得的一个应用程序 我们选择使用 ASP net mvc4 来构建这个系统 并使用实体框架作为我们的 ORM 我们收购的公司的前任所有者非常坚定地要求我们使用他们的旧数据库 并且不对其
  • MySQL如何根据字段是否存在来插入新记录或更新字段?

    我正在尝试实现一个评级系统 在数据库表中保留以下两个字段 评级 当前评级 num rates 迄今为止提交的评分数量 UPDATE mytable SET rating rating num rates theRating num rate
  • 标记个体内事件发生后发生的日期

    我有一组长格式的数据 每人几行 人 id 其中事件 事件 1 应该只发生一次 事件发生后 该人不应再有任何数据 如果事件发生后出现任何记录 我想使用名为 flag flag 1 的新变量创建一个查询 例如 下面标记了 id 5 因为在该人的
  • INFORMATION_SCHEMA 与 sysobjects

    在 SQL Server 中 INFORMATION SCHEMA 和 sysobjects 之间有什么区别 其中一个是否比另一个提供更多信息 或者它们通常用于不同的用途 sysobjects 与 sys objects 相同吗 如果不是
  • play20 ebean 生成的 sql 在 postgresql 上抛出语法错误

    我正在尝试使用 postgresql 来启动我的 play20 应用程序 以便我可以使用并稍后部署到 Heroku 我跟着这个answer https stackoverflow com questions 12195568 errors
  • 从多个表中选择 - 一对多关系

    我有这样的表 表产品 身份证 姓名 表格图像 产品 ID 网址 订单号 表价 产品 ID 组合 货币 价格 表数量 产品 ID 组合 数量 表 Product 与其他表是一对多关系 我需要查询表并得到类似这样的结果 伪数组 ProductI

随机推荐

  • Ruby/Rails - 如何根据十进制进行验证?

    如何根据小数位数进行验证 例如 假设我们要存储小数点后最多 2 位小数的酒店评级 4 34 3 76 ETC 我在网上读到了基于您与列绑定的精度 比例截断的 sqlite 因此 如果您的精度为 3 小数位数为 2 并输入 1 34567 则
  • 将特定文件复制到新文件夹,同时保留原始子目录树

    我有一个大目录 其中有许多子目录 我正在尝试对其进行排序 我正在尝试将特定文件类型复制到新文件夹 但我想保留原始子目录 def copyFile src dest try shutil copy src dest except shutil
  • 交换两个变量的 XOR 技巧如何真正在字符串上起作用?

    我刚刚遇到了这段代码 用于在 PHP 中交换两个变量的值
  • 检查 iOS 模拟器类型和版本

    我有以下代码片段来检测 iOS 设备 NSString platformNSString size t size sysctlbyname hw machine NULL size NULL 0 char machine malloc si
  • 我可以在 MySQL 下直接在 SQL 中运行 HTTP GET 吗?

    我很乐意这样做 UPDATE table SET blobCol HTTPGET urlCol WHERE whatever LIMIT n 有代码可以做到这一点吗 我知道这应该是可能的 因为MySQL 文档包括添加执行 DNS 查找的函数
  • 等待与事件处理程序异步

    我对如何最好地处理这种情况感到困惑 我不想等待异步调用的响应 具体来说我有 public async Task
  • 如何在 ASP.Net MVC 5 中动态添加新行

    我正在寻求有关如何在 ASP Net MVC 5 应用程序的创建 Razor 视图中向发票添加新行 LineItems 的帮助 我读过几乎所有类似的问题 但没有一个解决了我认为的简单用例 这是我的发票模型类 public class Inv
  • 如何在 Pygame 中生成第二次点击的位置?

    我正在建造河内塔 它应该像这样工作 您单击第一个塔 从您想要磁盘移动的位置 然后单击第二个塔 您希望磁盘移动到的位置 磁盘应从第一个塔 一个列表 移动到第二个塔 另一个列表 我的问题是 当您第一次单击时 代码会生成位置 不久之后您应该再次单
  • 提取字符串中文件扩展名 (.ps1) 之前的数字

    创建文件的 cmdlet 返回一个文本块 其中包含文件的名称 该文件的格式为字符串 数字 ps1 但数字是随机的 所以我想提取该数字并将其存储在变量中 供参考的文本块 nA using statement must appear befor
  • 单精度不能保证6位数字吗?

    这是code typedef std numeric limits
  • PySide2 在询问时不更新 QLabel 文本

    我正在从 Python 2 7 升级到 Python 3 6 并从 PySide 升级到 PySide2 我首先尝试从 入门 网站获取 Hello World https doc snapshots qt io qtforpython ge
  • Django auth:在哪里放置自定义模板?

    我想使用 Django 1 9 设置用户身份验证 如文档中所述 我将 auth 视图包含在我的项目中urls py like urlpatterns url accounts include django contrib auth urls
  • 如何将两个不同存储库的两个分支合并到一个存储库中?

    我的 Git 存储库的结构如下所示 A B C D E F master branch in separate repo1 A B C D E G H master branch in separate repo2 A H 是简单的提交 正
  • Python/sqlite:获取新插入行的PK

    我正在使用原始 SQL 插入一行 并且需要获取新插入行的主键 我不能假设任何非 PK 插入的数据是唯一的 也不能假设该行是最后插入的行 如果无法使用原始 SQL 那么使用 常规 插入怎么样 我想我必须完全创建一个新的 customID 字段
  • 从php中的for循环推送关联数组

    for 循环应该循环 10 次 当我刚刚打印 fname lname and email我正在获取 10 条数据 工作正常 但我需要将这些值存储在关联数组中 assocDataArray array foreach data as key
  • 如何设置数字样式?

    我正在尝试改变数字的样式 我想在每 3 位数字之间添加一些空格 我会确切地知道这些数字在 html 中的位置 当我从 html 检索号码时 它需要与我输入的号码完全相同 所以我只想设计数字的样式 不修改号码 我可以使用 javascript
  • 当 python 列表迭代是或不是引用时

    有人可以对这两个Python操作在修改列表方面的区别提供一个简洁的解释吗 demo a b c for d in demo d print demo output a b c for c in range len demo demo c p
  • 抑制函数的命令窗口输出

    我正在使用的一个功能有display 在其中 或在命令窗口上显示消息的其他内容 因此当我运行代码时 它会在命令行上输出很多内容 x 1200 这使得事情很难跟踪和观察 有没有办法抑制这个特定函数的输出 用分号结束语句显然没有帮助 您可以尝试
  • 如何纠正 fortify 给出的路径操作错误?

    我需要读取保存在 user home 文件夹中的属性文件 PropsFile System getProperty user home System getProperty file separator x properties Forti
  • 构建 INSERT 语句值的动态列表

    我正在编写一个存储过程来创建一组DELETE管理员针对数据库运行的语句 作为 回滚 解决方案的一部分 我希望对于要删除的每一行 还分别创建一个相应的INSERT语句 以便运行脚本的人希望撤消 他们可以简单地对数据库运行插入语句 我的问题是