Update Select
Las Updates de SQL se realizan utilizando referencias directas a una tabla en particular
Usando Inner Joins
El método más básico para realizar esta acción es usar una INNER JOIN
, por lo que los valores en las columnas de dos tablas diferentes se comparan entre sí.
UPDATE libros SET libros.autor = autores.nombre FROM libros INNER JOIN autores ON libros.autor_id = autores.id WHERE libros.titulo = 'Don Quixote'
sintaxis update sql server
En el ejemplo anterior, estamos UPDATING
los libros.autor
Field para que coincidan con los autores.nombre
para Don Quixote
al unir ambas tablas en la consulta a sus respectivos valores coincidentes de autores.id
y los libros.autor_id
.
Usando MERGE para UPDATE e INSERT simultáneamente
Similar a INNER JOIN
.MERGE
intentos de realizar una UPDATE
y un comando de INSERT
juntos.
MERGE INTO libros USING autores ON libros.autor_id = autores.id WHEN MATCHED THEN UPDATE SET libros.autor = autores.name WHEN NOT MATCHED THEN INSERT (libros.autor_id, libros.autor) VALUES (autores.id, autores.name)
Queremos MERGE(UPDATE / INSERT)
la tabla de libros
utilizando la tabla de autores
secundarios, y estamos coincidiendo con los dos en función de los mismos libros.autor_id
= autores.id
comparación.
Cuando se coinciden con los MATCHED
, cuando se encuentra un registro existente. En ese caso, realizamos una UPDATE
estándar tal como lo hicimos antes, estableciendo el campo libros.autor
para igualar el campo autores.name
sql update from select
Ahora INSERT
un nuevo registro en la tabla de libros
y pase a lo largo de los valores para los campos autor_id
y autor
, Agarró del registro de la tabla de autores
asociados.
Con ese autor en la tabla de autores
, verificamos si existe un libro correspondiente en los libros
.
Si se encuentra un registro, aseguramos que los libros.autor
se configura utilizando la UPDATE
, y donde no se encuentra ninguna coincidencia, agregamos un nuevo registro a los libros
.