SQL - actualizar una tabla con otra

 
Vista:
sin imagen de perfil
Val: 64
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

actualizar una tabla con otra

Publicado por Jordi (39 intervenciones) el 26/04/2019 19:29:03
Buenas
Tengo 2 tablas con la misma estructura.
Tabla1 y Tabla2
La Tabla1 quiero que actualize la Tabla2, si se ha añadido algun dato de mas ... etc.
Lo que pasa que tanto en la Tabla1 como en la Tabla2, hay un campo llamado indice, que tiene la llave primaria y que no deja duplicador.

He intentado con
INSERT INTO Tabla2 *
SELECT distinct indice
FROM Tabla1

Pero no hay manera

Alguna idea?
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

actualizar una tabla con otra

Publicado por Vega (73 intervenciones) el 26/04/2019 19:53:27
Hola Jordi,

usa

set identity_insert {tabla} on

sentencia insert

set identity_insert {tabla} off
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

actualizar una tabla con otra

Publicado por Isaias (1919 intervenciones) el 26/04/2019 23:38:52
Si acaso fuera SQL Server, seria asi:

1
2
3
4
INSERT INTO table_a (col1a, col2a, col3a,)
SELECT col1b, col2b, col3b,
FROM table_b
WHERE NOT EXISTS(SELECT col1 FROM table_a WHERE table_a.col1a = table_b.col1b)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 64
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

actualizar una tabla con otra

Publicado por Jordi (39 intervenciones) el 27/04/2019 07:57:40
Buenas
Si, es sql server,. Lo he probado y me dice 0 filas afectadas, cuando resulta que en la tabla EntradesPrimeres1 hay 2 filas mas con datos.
Así es como lo he hecho.

INSERT INTO EntradesPrimeres2 (Assumpte,DataRebut,EstatTramitacio,IdentificadorFormulari,NumeroExpedient, NIF, Nom, Cognoms, DomiciliActual, Municipi, CodiPostal, Telefon, TelefonContacte, DataNaixament, DataSol, Puntuacio, Grau,
Nivell,DataComissio,IncidImpValorar,Caracter,DataValoracio,InstNoBaixarGrau,NomVal,AdrecaNotificacio)
SELECT Assumpte,DataRebut,EstatTramitacio,IdentificadorFormulari,NumeroExpedient, NIF, Nom, Cognoms, DomiciliActual, Municipi, CodiPostal, Telefon, TelefonContacte, DataNaixament, DataSol, Puntuacio, Grau,
Nivell,DataComissio,IncidImpValorar,Caracter,DataValoracio,InstNoBaixarGrau,NomVal,AdrecaNotificacio
FROM EntradesPrimeres2
WHERE NOT EXISTS(SELECT IdentificadorFormulari FROM EntradesPrimeres1 WHERE EntradesPrimeres1.IdentificadorFormulari = EntradesPrimeres2.IdentificadorFormulari)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 64
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

actualizar una tabla con otra

Publicado por Jordi (39 intervenciones) el 27/04/2019 17:04:14
Me habia equivocado
La correcta era
INSERT INTO EntradesPrimeres2 (Assumpte,DataRebut,EstatTramitacio,IdentificadorFormulari,NumeroExpedient, NIF, Nom, Cognoms, DomiciliActual, Municipi, CodiPostal, Telefon, TelefonContacte, DataNaixament, DataSol, Puntuacio, Grau,
Nivell,DataComissio,IncidImpValorar,Caracter,DataValoracio,InstNoBaixarGrau,NomVal,AdrecaNotificacio)
SELECT Assumpte,DataRebut,EstatTramitacio,IdentificadorFormulari,NumeroExpedient, NIF, Nom, Cognoms, DomiciliActual, Municipi, CodiPostal, Telefon, TelefonContacte, DataNaixament, DataSol, Puntuacio, Grau,
Nivell,DataComissio,IncidImpValorar,Caracter,DataValoracio,InstNoBaixarGrau,NomVal,AdrecaNotificacio
FROM EntradesPrimeres1
WHERE NOT EXISTS(SELECT IdentificadorFormulari FROM EntradesPrimeres2 WHERE EntradesPrimeres1.IdentificadorFormulari = EntradesPrimeres2.IdentificadorFormulari)

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar