7

让我们保持简短和甜蜜

我想这样做(我现在已经失败了很多次,一次尝试甚至用空白更新了 Row):

UPDATE Database2.Table1 
SET (Database2.Table1.Column1, Database2.Table1.Column2, Database2.Table1.Column3) 
VALUES 
   (Database1.Table1.Column1, Database1.Table1.Column2, Database1.Table1.Column3)
WHERE Database2.Table1.Column1 = Database1.Table1.Column1

这两个已经包含相同的值,但其他 2 列不包含,这就是我希望通过此查询更改的内容。

以下是每张桌子的外观:

数据库1.表1

[id]
[name]
[applicationdate]
[startdate]
[shortdescription]
[longdescription]
[displayimg]
[contact]
[website]
[created]
[urlbase]
[site]
[keywords]
[type]
[location]

数据库2.表1

[id]
[name]
[applicationdate]
[startdate]
[content]
[keywords]
[customerid]
[urlbase]
[shortdescription]
[meta]
[type]
[site]
[searchurlbase]
[lang]
[educationlength]
[locations]
[educationwebsite]
[contact]
[tags]
[educationtypes]
[created]
[category]

非常感谢任何帮助,感谢您的宝贵时间:)

对不起,如果这没有任何意义,我在试图解释我遇到的问题时很容易感到困惑

4

2 回答 2

17
UPDATE dest
  SET column2 = src.column2,
      column3 = src.column3
FROM Database2.dbo.Table1 AS dest 
INNER JOIN Database1.dbo.Table1 AS src
ON dest.column1 = src.column1;

鉴于您的整理问题,您可以在相等操作中指定整理。不知道哪一方给出了问题,并假设您不关心区分大小写:

UPDATE dest
  SET column2 = src.column2,
      column3 = src.column3
FROM Database2.dbo.Table1 AS dest 
INNER JOIN Database1.dbo.Table1 AS src
ON dest.column1 COLLATE Finnish_Swedish_CI_AS
 = src.column1  COLLATE Finnish_Swedish_CI_AS;

如果您关心区分大小写,则将两个子句都更改为_CS_AS_一个。

于 2013-04-15T14:39:19.097 回答
-1

如果您的数据库在同一台服务器上,那么在 mysql 中太容易了。mysql命令是: insert into db2.table_name(column_name you want) select from table1_name.coumn_name you want from table1

例如,insert into db2.new(id,name,email) select from register.id,register.name,register.email from register。

其中,db2 是第二个 db 新是 db2 寄存器中的表在 db1 中,您将数据从该 db 复制到 db

于 2013-12-16T05:03:36.590 回答