Actualizar datos – Update

Actualización de los datos de los registros

  • Los registros guardados en las tablas requieren en ocasiones que los datos de sus campos sean actualizados.
  • Para actualizar debemos usar la instrucción Update, se asume que se tienen los permisos para hacerlo.
  • Al ejecutar la instrucción Update se debe tener mucho cuidado en filtrar exactamente los registros a actualizar, de no utilizar de manera correcta el filtro con Where para los registros a actualizar, los cambios pueden afectar a registros que no se deben modificar y no hay forma de anular los cambios hechos. (Ver Filtros).
  • Asegure de realizar el filtro correcto, tenga en cuenta los diversos operadores de SQL Server.

 

Instrucción Update

Permite la actualización de los datos de los registros de las tablas.

Sintaxis
La forma de escribir la instrucción Update para SQL Server es como sigue:

UPDATE [ Top n [ Percent ] ] Tabla / Vista
Set
{ NombreColumn = { expresión | DEFAULT | NULL }
[ FROM{ <TablaOrigen> } [ ,…n ] ]
[ WHERE { <Condición(es)>

Donde

Top n [Percent] Especifica los primeros registros que se actualizarán, puede expresarse en porcentaje.
Tabla / Vista Nombre de la tabla o vista a actualizar. Puede incluir el servidor, el esquema y el nombre de la tabla o vista.
Set Permite especificar las columnas de la tabla o vista que se actualizarán. Las columnas con restricciones Primary key y la que tiene Identity no se pueden actualizar.

Las columnas con restricciones Foreign Key, Check y Unique debe cumplir con estas para actualizarse.

From Especifica la tabla origen para la actualización de los registros
Where Especifica la condición o condiciones que debe de cumplir los registros para actualizarse.



Ejercicios

Usando Northwind
use Northwind
go

1. Cambiar la dirección del cliente Island Trading a “Av. Camino Real 3993”

update Customers set Address = ‘Av. Camino Real 3993’
where CompanyName = ‘Island Trading’
go

2. Ver el resultado

select * from Customers where CompanyName = ‘Island Trading’
go

3. Actualizar los precios de los productos de la categoria Bebidas (Beverages).  Aumentar en 3 unidades cada uno.

Update Products set UnitPrice = UnitPrice + 3
where CategoryID = (Select CategoryID from Categories where CategoryName = ‘Beverages’)
go
Note la subconsulta usada en where. (Ver Subconsultas)

4. Actualizar los datos del proveedor Tokyo Traders (Código 4). Contacto: Sumiko Chavez, Cargo: Administrador, Dirección: 1005 Oklahoma St., Ciudad: Nagasaky

Update Suppliers set ContactName = ‘Sumiko Chavez’, ContactTitle = ‘Administrador’,
Address = ‘1005 Oklahoma St.’, City = ‘Nagasaky’
where SupplierID = 4
go

5. Actualizar la region de las órdenes que no han sido especificadas (Null)
Cambiar el Null por una cadena de caracteres en blanco
Las órdenes son que tienen Null en el campo ShipRegion son:

select * from Orders where ShipRegion is null
go
update Orders set ShipRegion = ”
where ShipRegion is null
go
— Importante: En las tablas en toda la base de datos no debería aparecer el valor de Null.

6. Disminuir el precio en 20% de los productos que tienen mas de 30 unidades en Stock sin incluir las unidades por atender.(UnitsInStock – UnitsOnOrder > 30)

Update Products Set UnitPrice = UnitPrice * 0.80
where UnitsInStock – UnitsOnOrder > 30
go