我想将数据从一列复制到另一个表的另一列。我怎么能这样做?
我尝试了以下内容:
Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts)
但它不起作用。
我想将联系人表的“BusinessCountry”列复制到tblindiantime表的“CountryName”列。
答案 0 :(得分:129)
此处查询:
同桌:
UPDATE table_name
SET column1 = column2
不同表:
UPDATE table_name1
SET column1 = (
SELECT column2
FROM table_name2
WHERE table_name1.id = table_name2.id
);
答案 1 :(得分:75)
在SQL Server 2008中,您可以按如下方式使用多表更新:
UPDATE tblindiantime
SET tblindiantime.CountryName = contacts.BusinessCountry
FROM tblindiantime
JOIN contacts
ON -- join condition here
您需要一个连接条件来指定应更新哪一行。
如果目标表当前为空,那么您应该使用INSERT:
INSERT INTO tblindiantime (CountryName)
SELECT BusinessCountry FROM contacts
答案 2 :(得分:18)
Table2.Column2 => Table1.Column1 强>
我意识到这个问题已经过时了,但接受的答案对我来说并不适用。对于未来的googlers来说,这对我有用:
UPDATE table1
SET column1 = (
SELECT column2
FROM table2
WHERE table2.id = table1.id
);
因此:
答案 3 :(得分:14)
希望你有关键字段是两个表。
UPDATE tblindiantime t
SET CountryName = (SELECT c.BusinessCountry
FROM contacts c WHERE c.Key = t.Key
)
答案 4 :(得分:7)
A similar question's answer比this question's selected answer(Mark Byers)更适合我。使用Mark的答案,我更新的列在所有行中都获得了相同的值(可能是与第一行匹配的值)。使用ParveenaArora的答案从另一个线程更新了具有正确值的列。
转变Parveena的解决方案以使用这个问题'表和列名称,查询将如下(我假设表通过tblindiantime.contact_id相关):
UPDATE tblindiantime
SET CountryName = contacts.BusinessCountry
FROM contacts
WHERE tblindiantime.contact_id = contacts.id;
答案 5 :(得分:1)
我认为之前的所有答案都是正确的,下面的代码非常有效,如果你必须一次更新多行,请注意:它是PL / SQL
DECLARE
CURSOR myCursor IS
Select contacts.BusinessCountry
From contacts c WHERE c.Key = t.Key;
---------------------------------------------------------------------
BEGIN
FOR resultValue IN myCursor LOOP
Update tblindiantime t
Set CountryName=resultValue.BusinessCountry
where t.key=resultValue.key;
END LOOP;
END;
我希望这可以提供帮助。
答案 6 :(得分:0)
可以使用不同的属性来解决。
答案 7 :(得分:0)
现在管理工作室2016更加轻松。
使用SQL Server Management Studio
将数据从一个表复制到另一个表
1.右键单击表格,然后单击设计,打开要复制的列和要复制的列的表格。
2.单击包含要复制的列的表的选项卡,然后选择这些列。
3.从修改菜单中,点击复制。
4.打开一个新的查询编辑器窗口。
5.右键单击查询编辑器,然后单击编辑器中的设计查询。
6.在添加表对话框中,选择源表和目标表,单击添加,然后关闭添加表对话框框。
7.右键单击查询编辑器的空白区域,指向更改类型,然后单击插入结果。
8.在选择插入结果的目标表对话框中,选择目标表。
9.在查询设计器的上半部分,单击源表中的源列。
10.查询设计器现在已创建INSERT查询。单击“确定”将查询放入原始“查询编辑器”窗口。
11.执行查询以将源表中的数据插入目标表。