我正在使用SQL Server 2008 R2,我有以下表格:
client(id,country,name)
和temp(id,country)
,它们之间是相互关联的。
我想知道如何将temp.id值设置为client.id,并与国家/地区相同。是否有更新句子?我一直在寻找其他网站,我刚刚找到相关表格的解决方案,这不是我的情况。
答案 0 :(得分:0)
你应该可以做一个简单的insert
:
insert into client
select id, country, '' from temp
您可能想要设置一个特定的name
,因为它不在temp
表中(除非它在client
表中可以为空)。
或者,如果id
是自动增加的列,请从id
中删除select
:
insert into client
select country, '' from temp
答案 1 :(得分:0)
当你在SET中思考时,你会在程序上思考。
使用SELECT检索数据
使用WHERE
仅选择来自西班牙的客户
使用列的常量值修改数据作为检索的一部分
使用检索到的数据插入表
INSERT INTO client
SELECT id+10 as id, 'Germany' as country
FROM client
WHERE country = 'Spain'
当然,如果这是一个必须学习SELECT,WHERE,UPDATE等内容的练习,那么你就可以完成程序步骤了。
答案 2 :(得分:0)
也许您想以一种方式同步两个表:
UPDATE t SET t.id=c.id, t.country=c.countryname
FROM client c INNER JOIN temp t ON t.id = c.id
INSERT INTO temp(id,country)
SELECT c.id, c.countryname
FROM client c
WHERE NOT EXISTS(SELECT 1 FROM temp t
WHERE t.id=c.id)