SQL Server:将列数据值从一个表复制到同一数据库中的另一个表

Posted

技术标签:

【中文标题】SQL Server:将列数据值从一个表复制到同一数据库中的另一个表【英文标题】:SQL Server: copy column data values from one table to another table in the same database 【发布时间】:2017-01-28 20:23:50 【问题描述】:

我在同一个 SQL Server 数据库中有两个不同的表。在我的表T1 中,我有 4 列 10 行。我有一张表T2,有 5 列。我想将表T2 中第五列的内容复制到表T1 的第五列。

但是,当我按以下方式进行交叉表更新时

update T1
set T1.fifthColumn = T2.fifthColumn
from T1, T2

它正在用 T2 中第五列的第一行值(数据)更新 T1 中的 10 行。有什么办法可以将T2中第五列的值复制到T1?我尝试了很多例子,但没有一个能正常工作。

PS:我使用的是 SQL Server 2008。

【问题讨论】:

【参考方案1】:

您已经在 T1 中创建了额外的(第 5 个)列,它是正确的数据类型,但只是空值,对吗?你是什​​么其他4列?我假设您可以加入一些唯一的密钥?两张表中的其他 4 列是否已经相同?

我会这样做:

update T1  set T1.fifthColumn = T2.fifthColumn
from T1 left join T2 on T1.keyField = T2.keyField

【讨论】:

另外 4 列在两个表中并不相同。但是,我可以加入一个唯一的密钥,谢谢。

以上是关于SQL Server:将列数据值从一个表复制到同一数据库中的另一个表的主要内容,如果未能解决你的问题,请参考以下文章

将列添加到现有 SQL Server 表 - 含义

如何将列值从存储过程中的另一个表更新到表中?

sql server复制表数据到另外一个表 的存储过程

sql server复制表数据到另外一个表的存储过程

SQL Server 标识列值从 0 而不是 1 开始

Liquibase:将值从一列复制到具有数组数据类型的另一列