0

我正在使用 SQL Server 2008 R2,我有以下表格: client(id,country,name)temp(id,country),它们彼此之间不相关。我想知道如何将 temp.id 值设置为 client.id,并且与国家相同。是否带有更新语句?我一直在查看其他网站,我只是找到了相关表格的解决方案,但这不是我的情况。

4

3 回答 3

0

当你应该在 SET 中思考时,你是在程序上思考。

使用 SELECT 检索数据
使用 WHERE 仅选择来自西班牙的客户端 使用
列的常量值修改数据作为检索的一部分
使用检索到的数据插入到表中

INSERT INTO client
SELECT id+10 as id, 'Germany' as country
FROM client
WHERE country = 'Spain'

当然,如果这是一个您必须学习诸如 SELECT、WHERE、UPDATE 等内容的练习,那么您将执行您的程序步骤。

于 2013-05-16T22:20:11.027 回答
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)

演示

于 2013-05-16T22:20:43.513 回答
0

你应该能够做一个简单的insert

insert into client
select id, country, '' from temp

您可能想要设置一个特定name的,因为它不在temp表中(除非它在client表中可以为空)。

这是一个演示

或者,如果id是一个自动递增的列,id则从 中删除select

insert into client
select country, '' from temp

这是一个演示

于 2013-05-16T22:18:39.293 回答