miércoles, 3 de octubre de 2018

Specify Computed Columns in a Table (Columnas Calculadas) - SQL SERVER

Algunas veces se hace necesario realizar cálculos complejos sobre la información que se encuentra almacenada en una tabla de una base de datos, que si se realiza desde el aplicativo puede que tarde algún tiempo, por lo tanto, se puede asignar este trabajo pesado al motor de la base de datos.

A continuación, se muestra como se realiza desde el motor.

Iniciamos con la creación de la tabla de la base de datos:


CREATE TABLE dbo.EmpleadosFact
(
    EmpleadoId int IDENTITY (1,1) NOT NULL
  , SalarioBasico money
  , HorasExtras int
  , Bonificacion money
  , Salario_total AS SalarioBasico +  (SalarioBasico/240)* HorasExtras + Bonificacion
  , impuestos_salud as (SalarioBasico +  (SalarioBasico/240)* HorasExtras + Bonificacion) * 0.04
  , impuestos_pension as (SalarioBasico +  (SalarioBasico/240)* HorasExtras + Bonificacion) * 0.05
);   


Ahora vamos a realizar la inserción de un registro para evaluar la formulas predefinidas.

INSERT INTO [dbo].[EmpleadosFact]
 ([SalarioBasico],[HorasExtras],[Bonificacion])
     VALUES (6000000,10,430000.50);

Y el resultado es el siguiente:




También cuando se realiza la actualización sobre uno de los registros, se realizará el cálculo nuevamente, así:



UPDATE [dbo].[EmpleadosFact]  SET [SalarioBasico] = 6200000
 WHERE EmpleadoId = 1;

  
 

Para mayor información: 


Y así terminamos, en la base de datos de Postgresql se realiza mediante un trigger no existe las columnas calculadas en este motor.


Gracias hasta la próxima vez. 









No hay comentarios:

Publicar un comentario