viernes, septiembre 11, 2026

Como utilizar el Update en nuestras bases de datos, varias opciones

En muchas ocaciones nuestros update no van a ser tan sencillos como cuando tenemos en el where un nombre_columna = @variable, generalmente tendremos que hacer asuntos mas complejos, donde incluso tengamos subqueys en nuestros update, para modificar grandes cantidades de datos al mismo tiempo.

Estructura del Update:

UPDATE <table_or_view_name>
SET {<column_name> = <literal> |
<expression> |
(<single_row_select_statement>) |
NULL |
DEFAULT,…}
[WHERE <predicate>]

Update de una columna de una sola fila
Talves este es el update más sencillo y común que nos podremos encontrar en nuestas aplicaciones

UPDATE product
SET prod_price_n = 18.24
WHERE prod_id_n = 990

Update multiples columnas en una sola fila
Algunas veces tendremos que modificar varios datos a la ves en una misma fila

UPDATE product
SET prod_pltwid_n = 5,
prod_pltlen_n = 7
WHERE prod_id_n = 990

Update de una columna para todas las filas
Este es un update general si importar la llave o algún dato para el filtro, solo vamos a actualizar el dato de una columna para todas las filas de ta tabla

UPDATE product
SET prod_price_n = prod_price_n * 1.1

Update una columna en una fila utilizando un subquery
Cuando necesitemos realizar una actualización mas dinámica, vamos a tener que utilizar subquerys.

Un asunto importante es que el subquery no debe de retornar mas de una fila por que va a dar error y si el subquery no retorna datos se le va a signar null al valor de la columna.

Usted puede concatenar dos o más columnas a la hora de asignar el valor correspondiente, SET my_col = (SELECT col1 + col2 …) pero no podria hacer SET my_col = (SELECT col1, col2 …) asi que siempre hay que tenerlo presente.

UPDATE order_header
SET ordhdr_payterms_fn =
(SELECT payterms_id_n
FROM payment_terms
WHERE payterms_code_s = 'N21531')
WHERE ordhdr_id_n = 30670

El ejemplo anterior era directo, usted derivó relativamente el valor que usted necesitó para la actualización de otro valor dado. Pero las condiciones son generalmente más complicadas. Ud puede relacionar la fila que va a modificar con alguna o algunas columnas de la tabla con la que quiere actiualizar los datos.

UPDATE order_header
SET ordhdr_payterms_fn =
(SELECT payterms_id_n
FROM payment_terms,
customer
WHERE payterms_id_n = cust_paytermsid_fn AND
ordhdr_custid_fn = cust_id_n)

Update utilizando Join en el subquery
Una de las mejores opciones para hacer updates con tablas que contienen muchos registros es utilizar el join, por que maneja mejor la correlación entre las tablas

UPDATE order_header
SET ordhdr_payterms_fn =
(SELECT payterms_id_n
FROM payment_terms
JOIN customer
ON payterms_id_n = cust_paytermsid_fn
JOIN order_header
ON ordhdr_custid_fn = cust_id_n)

Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

Cómo retornar JSON desde un WebService en .NET

JSON es uno de los protocolos de intercambio de datos mas populares y eficientes del momento, saber como exportar nuestros datos desde .NET es muy importante. En este ejemplo explicamos como exportar estos datos en un Webservice.

Como reducir el tamaño de la base de datos y del log en SQL...

El objetivo de este artículo es optimizar nuestra base de datos utilizando las herramientas SQL Enterprise Manager y SQL Query Analyzer, reduciendo el tamaño de la base de datos y del log en SQL Server
C# - PDF417

Crear código PDF417 con iTextSharp y XZing en C# .NET

Para crear códigos PDF417 existen herramientas que podemos agregar a nuestra aplicaciones. En este ejemplo vamos explicar como utilizar iTextSharp y ZXing.

Últimos artículos

SQL Server MERGE

MERGE in SQL Server for Insert, Delete and Update with two tables

Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

Como crear una API REST con ASP.NET Core 6.0

Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
Machine Learning & Python

Introducción a Machine Learning en Python

Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
SQL Server MERGE

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...