update query from currentdb con another sql tsql sql-server-2012

query - Actualización de SQL-Columnas múltiples



update con select access (2)

Me gustaría actualizar varias columnas en una tabla basada en los valores de una segunda tabla utilizando una declaración Select para obtener los valores como este:

UPDATE tbl1 SET (col1, col2, col3) = (SELECT colA, colB, colC FROM tbl2 WHERE tbl2.id = ''someid'') WHERE tbl1.id = ''differentid''

Sin embargo, no parece que sea posible ''ESTABLECER'' más de un nombre de columna. ¿Hay alternativas en lugar de escribir instrucciones de actualización separadas para cada columna?

UPDATE tbl1 SET col1 = (SELECT colA FROM tbl2 WHERE tbl2.id = ''someid'') WHERE tbl1.id = ''differentid'' UPDATE tbl1 SET col2 = (SELECT colB FROM tbl2 WHERE tbl2.id = ''someid'') WHERE tbl1.id = ''differentid'' UPDATE tbl1 SET col3 = (SELECT colC FROM tbl2 WHERE tbl2.id = ''someid'') WHERE tbl1.id = ''differentid''


Esto debería funcionar -

Update Tbl1 SET Col1 = B.ColA, Col2 = B.ColB, Col3 = B.ColC FROM Tbl2 B Where B.Id = ''Someid''


update tbl1 set col1 = a.col1, col2 = a.col2, col3 = a.col3 from tbl2 a where tbl1.Id = ''someid'' and a.Id = ''differentid''