17 jun 2010

Update con valores de otra tabla

Algunas cosillas se nos va cómo es que hay que hacerlas, a veces son un tanto lógicas y nos parece que son sencillas pero por una u otra no le llegamos.

Eso me pasó recientemente cuando necesitaba actualizar la tabla1 con valores de la tabla2 (en realidad debía pasar los datos de una a otra y borrar la tabla2).

Para ser este tipo de Update una sintaxis que funciona en SQL server 2005 es la siguiente
UPDATE T1
SET T1.campo1 = T2.campo1,
T1.cammpo2 = T2.campo2
FROM Tabla1 T1 INNER JOIN Tabla2 T2
ON T2.campoLlave = T1.campoLlave

En la tabla 2 lo lógico es que debe haber un solo registro devuelto por la sentencia Join con respecto a la Tabla1.