update una tablas tabla simultaneamente servidores relacionar otra inner entre diferentes datos consultar consulta con bases actualizar sql-server database syntax inner-join

sql server - una - Actualizar consulta con INNER JOIN entre tablas en 2 bases de datos diferentes en 1 servidor



update con inner join (9)

A continuación está la sintaxis de MySQL:

UPDATE table1 INNER JOIN table2 ON table1.field1 = table2.field2 SET table1.field3 = table2.field4 WHERE ...... ;

http://geekswithblogs.net/faizanahmad/archive/2009/01/05/join-in-sql-update--statement.aspx

Necesita ayuda con la sintaxis SQL :-)

Ambas bases de datos están en el mismo servidor

db1 = DHE db2 = DHE_Import UPDATE DHE.dbo.tblAccounts INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink ON DHE.dbo.tblAccounts.AccountCode = DHE_Import.tblSalesRepsAccountsLink.AccountCode SET DHE.dbo.tblAccounts.ControllingSalesRep = DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode

Puedo hacer una consulta en Access con tablas vinculadas con sintaxis similar, PERO SQL no le gusta.

Estoy seguro de que es un problema simple :-D

¡Gracias!


Debería verse así:

UPDATE DHE.dbo.tblAccounts SET DHE.dbo.tblAccounts.ControllingSalesRep = DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode from DHE.dbo.tblAccounts INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink ON DHE.dbo.tblAccounts.AccountCode = DHE_Import.tblSalesRepsAccountsLink.AccountCode

La tabla de actualización se repite en la cláusula FROM.


Lo siento, es tarde, pero creo que sería de ayuda para aquellos que buscan encontrar una solución a un problema similar. La cláusula set debería venir justo después de la cláusula de actualización. Así que reorganizar tu consulta con un pequeño cambio hace el trabajo.

UPDATE DHE.dbo.tblAccounts SET DHE.dbo.tblAccounts.ControllingSalesRep = DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode from DHE.dbo.tblAccounts INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink ON DHE.dbo.tblAccounts.AccountCode = DHE_Import.tblSalesRepsAccountsLink.AccountCode


Podría llamarlo simplemente estilo, pero prefiero aliasing para mejorar la legibilidad.

UPDATE A SET ControllingSalesRep = RA.SalesRepCode from DHE.dbo.tblAccounts A INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink RA ON A.AccountCode = RA.AccountCode


Se explica aquí http://erabhinavrana.blogspot.in/2014/01/how-to-execute-update-query-by-applying.html

También tiene otros fragmentos de código útiles que se usan comúnmente.

update <dbname of 1st table>.<table name of 1st table> A INNER JOIN <dbname of 2nd table>.<table name of 2nd table> RA ON A.<field name of table 1>=RA.<field name of table 2> SET A.<field name of table 1 to be updated>=RA.<field name of table 2 to set value in table 1>

Reemplace los datos en <> con sus valores apropiados.

Eso es. fuente:

http://www.dynamic-coders.com/how-to-update-two-different-tables-in-different-databases-on-same-server


que puede ser útil

Update A INNER JOIN B ON A.COL1=B.COL3 SET A.COL2=''CHANGED'', A.COL4=B.COL4,...... WHERE ....;


//For Access Database: UPDATE ((tblEmployee LEFT JOIN tblCity ON (tblEmployee.CityCode = tblCity.CityCode)) LEFT JOIN tblCountry ON (tblEmployee.CountryCode = tblCountryCode)) SET tblEmployee.CityName = tblCity.CityName, tblEmployee.CountryName = tblCountry.CountryName WHERE (tblEmployee.CityName = '''' OR tblEmployee.CountryName = '''')


UPDATE table1 a inner join table2 b on (a.kol1=a.b.kol1...) SET a.kol1=b.kol1 WHERE a.kol1='''' ...

para mí hasta que la sintaxis funcionó -MySQL


Update one table using Inner Join UPDATE Table1 SET name=ml.name FROM table1 t inner JOIN Table2 ml ON t.ID= ml.ID