SQL - insertar y actualizar

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

insertar y actualizar

Publicado por Jordi (39 intervenciones) el 04/03/2021 19:35:14
Buenas
Tengo 2 tablas una llamada Datos y la otra llamada Usuarios. Con la siguiente consulta copio algunos datos de la tabla Datos a la tabla Usuarios sin que se repita el DNI. Hasta aqui todo correcto

INSERT INTO dbo_Usuarios( DNI, Nombre, Apellidos, Poblacion )" & _
SELECT DNI, DNI, Nombre, Apellidos, Poblacion
FROM dbo_Datos WHERE DNI NOT IN (SELECT DNI FROM dbo_Usuarios)

Como podria corregir esta consulta o hacer otra que por ejemplo si cambia la poblacion en la tabla Datos y cuyos datos ya estan en la tabla Usuarios me la actualize?

Entiendo que es un update pero no se como hacerlo.
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 Francisco
Val: 150
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

insertar y actualizar

Publicado por Francisco (62 intervenciones) el 04/03/2021 21:04:57
Hola

Tienes que crear un TRIGGER UPDATE en la tabla datos para que actualice los valores en la tabla Usuarios

Saludos
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

insertar y actualizar

Publicado por Jordi (39 intervenciones) el 05/03/2021 09:51:41
Buenas
Me podrias poner un ejemplo de como lo harias en este caso, he trabajado poco con TRIGGER.
Muchas 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
sin imagen de perfil
Val: 64
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

insertar y actualizar

Publicado por Jordi (39 intervenciones) el 05/03/2021 11:30:53
He intentado hacer lo siguiente pero no me funciona

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TRIGGER TR_Poblacion
ON Tabla1 FOR INSERT AS
BEGIN
DECLARE @DNI AS CHAR
DECLARE @Poblacion AS CHAR
 
SET @DNI = (SELECT DNI FROM INSERTED)
SET @Poblacion = (SELECT Poblacion FROM INSERTED)
 
UPDATE Tabla2
SET poblacion = @poblacion
WHERE DNI LIKE @DNI
END
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

insertar y actualizar

Publicado por Isaias (1921 intervenciones) el 05/03/2021 16:55:22
Los trigger no fueron creados para codificar la lógica del negocio, ademas la forma en que estas codificando, si existieran mas de 1 registro procesado, no funcionaria.

La tabla INSERTED y la tabla TABLA2, de alguna forma deben unirse, ¿me eqauivco?
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