Revisa y comenta brevemente sobre los siguientes puntos:
a) Diferencia entre “trigger”, “Function” y “Stored Procedure”
Un trigger es un objeto que se asocia con tablas y se almacena en la base de datos. Su nombre se deriva por el comportamiento que presenta en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (insert), borrado (delete) o actualización (update), ya que modifican los datos de una tabla. Una función es un bloque que devuelve un valor. Un procedimiento almacenado (Stored Procedure) es un programa almacenado físicamente en una base de datos. Su implementación varia de un gestor de base de datos a otro. La ventaja de un procedimiento almacenado es que, al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de base de datos, el cual usualmente corre en un servidor separado. Diferencias: Viendo las definiciones de los temas en cuestión podemos determinar algunas diferencias entre estos, estas diferencias son: 1. En las funciones se devuelve especificaciones un valor mientras que en los triggers y procedures es posible devolver más de un valor. 2. Los procedures tienen acceso directo a los datos que manipulara, sin sobrecarga, las demás funcionalidades difieren de los procedures en este sentido. 3. Los eventos que provocan que los triggers corran son INSERT, DELETE, UPDATE. También poseen una cualidad que se puede configurar en el momento que se realizara, las demás funcionalidades difieren de los triggers en este sentido. Partiendo de las siguientes tablas, crea una función que reciba como parámetro el ID del cliente, lo busque que retorne la edad calculada. Create function dbo.calcularedad(@id int) returns int as begin
declare @fecha varchar(30)
select @fecha = DATEDIFF(DAY, Fechaing, Fecha_movido) from Cliente_hist where id = @id return @fecha end
Select dbo.calcularedad(1)
Partiendo de las tablas creadas en el punto anterior, crea un “trigger” que
permita registrar en la tabla histórica todos los clientes que se inserten en la tabla “cliente”.
Create trigger tarea on Cliente
for insert as
declare @id int
declare @nombre varchar (50) declare @fechaing date declare @estado int
select @id = c.id from Cliente c
select @nombre = c.nombre from Cliente c select @fechaing = c.fechaing from Cliente c select @estado = c.estado from Cliente c
insert into Cliente_hist(ID_hist, Nombre_hist, Fechaing_hist,