2010-05-17 131 views
9

我有两个数据库:使用内部连接更新?

DB1 and DB2 

如何做这样的事情:

update myServer.DB1.dbo.hotels.Name = myServer.DB2.dbo.hotels.Name 

join myServer.DB2.dbo.hotels on myServer.DB2.dbo.hotels.Code= myServer.DB1.dbo.hotels.Code 
where myServer.DB2.dbo.hotels.CountryCoe != myServer.DB1.dbo.hotels.CountryCode 

回答

11
UPDATE h1 
SET  h1.name = h2.name 
FROM myServer.DB1.dbo.hotels h1 
JOIN myServer.DB2.dbo.hotels h2 
ON  h2.Code = h1.Code 
WHERE h1.CountryCode <> h2.CountryCode 
+0

选择了SQLMenace'identicial版本,因为ON子句在它自己的行上 - 必要时,当您的ON子句中有AND子句时... – 2010-05-17 14:13:25

2

例如

update h1 
set h1.Name = h2.Name 
from DB1.dbo.hotels.Name h1 
join DB2.dbo.hotels h2 on h1.Code= h2.Code 
where h2.CountryCoe != h1.CountryCode 
1

这应该为你做的伎俩。你错过了SET和FROM子句。

UPDATE DB1 
SET DB1.Name = DB2.Name 
FROM DB1.dbo.hotels DB1 
INNER JOIN DB2.dbo.hotels DB2 
ON DB2.Code = DB1.Code 
WHERE DB2.CountryCoe != DB1.CountryCode