2010-05-17 19 views
9

que tienen dos bases de datos:¿Actualizar con unión interna?

DB1 and DB2 

Cómo hacer algo como:

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 

Respuesta

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

Escogió esto sobre la versión identificada de SQLMenace porque la cláusula ON está en su propia línea, es necesario, cuando tiene cláusulas AND dentro de sus ON ... –

2

ejemplo

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

Esto debería hacer el truco para ti. Te estabas perdiendo las cláusulas SET y 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 
Cuestiones relacionadas