在同一个表中复制数据并同时更新列的最佳方法

Posted

技术标签:

【中文标题】在同一个表中复制数据并同时更新列的最佳方法【英文标题】:Best way to duplicate data in the same table and updating a column at the same time 【发布时间】:2021-11-09 20:34:54 【问题描述】:

我正在尝试找到复制表中所有行的最佳方法。我的意思是在同一个表中再次插入它们,但我需要更新单个列仅在插入的值

这是为了帮助我编写一个脚本,以便我可以在某些客户端上自动执行一些工作。

我不能使用 select * 因为它会因为标识列而引发错误,但同时我不想手动为多个表写入所有列名。

有没有一种简单的方法可以将其转换为 SQL 服务器?

很抱歉没有显示一段代码,但我现在什么都没有,而且我的 SQL 不是很流利。

编辑:我最终在这篇文章下方的 cmets 中遵循 JamieD77 的建议,将所有内容移动到表中,删除 id 列,更新我需要的内容,然后返回,因为这似乎是最有效的。

【问题讨论】:

列出列。这是最简单的方法。 总是可以选择 * 进入临时表,删除 id 列并选择回主表 那是个好主意。我可以移动到临时表,更新必要的值,然后插入回一个查询吗? 【参考方案1】:

在 SQL Server Management Studio 中,您可以将表下的“列”文件夹拖放到查询窗口中,它将粘贴所有列的逗号分隔列表。

或者运行如下查询:

select string_agg(quotename(name),', ')
from sys.columns 
where object_id = object_id('MyTable')

【讨论】:

以上是关于在同一个表中复制数据并同时更新列的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句把同一个表中的a字段中的数据复制到另一个字段b中

SQL语句把同一个表中的a字段中的数据复制到另一个字段b中

在 Python/PySpark 中 Spark 复制数据框列的最佳实践?

将具有 LONG RAW 列的表中的数据从一个数据库复制到另一个数据库

检查 DataReader 中是不是存在列的最佳方法

从表中复制数据并将其加载到另一个表中