jueves, 1 de octubre de 2015

Update en SQL Server Parte I

Buenas noches queridos lectores, siguiendo con el pequeño curso de SQL SERVER, he recibido buenos comentarios al respecto y me da gusto serles de ayuda, ya saben que cualquier cosa estoy a sus órdenes. Hoy hablaremos de la sentencia UPDATE, que nos sirve para actualizar la información de una tabla.

La sentencia UPDATE permite modificar o actualizar un conjunto de registros de una tabla o vista dependiendo de una condición.

Sintaxis:

UPDATE TABLA
[SET] {column_name] = {expresion}
[WHERE <criterio>]

Donde:

  • TABLA: Aquí se especifica el nombre de la tabla o vista que necesite ser actualizada
  • SET: Aquí se especifica la lista de nombres de variables o de columnas que se actualizarán en una determinada tabla
  • colum_name: Aquí se especifica la columna que desea actualizar, solo hay que tener en cuenta que no se pueden actualizar las columnas con restricciones de identidad IDENTITY
  • expresion: Es una variable, un valor, una expresión o una instruccion de subconsulta que devuelve un solo valor. El valor devuelto sustituye al valor existente en colum_name. Los operadores válidos para una expresión son:
    • += sumar y asignar
    • -= restar y asignar
    • *= multiplicar y asignar
    • /= dividir y asignar
  • WHERE: Especifica la o las condiciones que limitarán los valores que se actualizarán. Todo dependerá de la condición planteada, los operadores, dentro de la instrucción where dependerán del tipo de datos de la columna.
Para poder actualizar una tabla se tiene que tener algunas consideraciones

Consideraciones generales al actualizar registros

  • Si la sentencia de actualización infringe una restricción, una regla o si el nuevo valor es de un tipo de datos incompatible al declarado en la tabla; se cancela la instrucción dando como resultado un mensaje de error y no actualiza ningun registro de la tabla
  • La sentencia UPDATE es suceptible a errores aritméticos que podrá ser un error de desbordamiento o división por cero durante la evaluación de la expresión, la actualización no se lleva a cabo mostrando en este caso un mensaje de error y corta la actualización desde el punto de error; a diferencia del primer punto, éste si actualiza los registros hasta donde se ocasionó el error.
  • Se puede implementar la sentencia UPDATE dentro de funciones definidas por el usuario, solo hay que tener en cuenta que la tabla que se va a modificar sea una variable de tipo TABLE 
  • Si en la actualización participan columnas con definicion de tipo char y nchar se rellenan con espacion vacíos a la derecha hasta la longitud definida en la tabla.
Ejemplo:
Script que permita actualizar los valores de la coumna IMPUESTO por el valor 16 a todos los registros de la tabla TARIFA

UPDATE TARIFA
SET IMPUESTO=16
GO

Vamos por pasos analizando linea a linea estas sentencias

La primera linea nos indica que vamos a realizar los cambios en la tabla TARIFA

La segunda línea nos indica que a campo impuesto le asignaremos el valor 16, al no tener instrucción WHERE se actualizarán todos los registros

Ejemplo 2:
Script que permita actualizar los valores de la columna IMPUESTO aumentando a 2 a todos los registros de la tabla TARIFA

UPDATE TARIFA
SET IMPUESTO +=2
GO.


Ejemplo 3: 
Script que permita asignar el impuesto a cero, solo a los registros cuya CLASE sea ECONOMICO de a tabla TARIFA

Primero verificamos los datos de la tabla TARIFA

SELECT * FROM TARIFA



UPDATE TARIFA
SET IMPUESTO=0
WHERE CLASE='ECONOMICO'
GO

Hay que notar que la sentencia WHERE limita la actualización de los registros, haciendo los cambios solo a los registros que cumplan con dicha condición. Vamos a probar como quedo la tabla

SELECT *
FROM TARIFA
GO


Como podemos observar, el cambio se realizó correctamente mediante la sentencia UPDATE únicamente a la clase económica.

Hasta aquí la primera parte del uso de UPDATE en SQL, pronto terminaré la segunda parte con mas opciones y más ejemplos. Espero compartan, le den un +1 o clic a alguno de los anuncios, Muy buenas noches gente y espero seguir recibiendo comentarios.







Banderas de Visitantes

Flag Counter