Sie sind auf Seite 1von 3

Procedimientos Almacenados, Funciones Elaborada por: Emilson Acosta

y Triggers
UNIVERSIDAD NACIONAL AUTNOMA DE HONDURAS
FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA EN SISTEMAS

BASE DE DATOS II
PROCEDIMIENTOS ALMACENADOS

Un stored procedure es una secuencia ordenada de instrucciones SQL cuyo cdigo se guarda en la base
de datos y tiene como objetivo realizar una accin especfica al ser invocados para su ejecucin.
Su sintaxis es la siguiente:

CREATE PROCEDURE <nombre_procedure>
<parmetro 1> <tipo de dato>, <parmetro 2 > <tipo de dato>, <parmetro n> <tipo de dato>
AS
DECLARE
<definicin_variables>;
BEGIN
<cdigo_plsql>
END
Ejemplo:
CREATE PROCEDURE dbo.Departamentos
-- Add the parameters for the stored procedure here
@pais int
AS
DECLARE
@id int=@pais
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT *
FROM dbo.tblDepartamentos where
IdDepartamento=@id
END
Ejecucin Del Procedimiento:
EXEC <nombre del procedimiento> <parmetro 1>, <parmetro n>
Ejemplo:
exec dbo.Departamentos 1





Procedimientos Almacenados, Funciones Elaborada por: Emilson Acosta
y Triggers
FUNCIONES
Una funcin al igual que los stored procedures, su cdigo se guarda en la base de datos y tiene como
funcin realizar un clculo y devolver un valor.
Sintaxis:

CREATE FUNCTION <nombre_funcin> (<parmetro 1> <tipo de dato>, <parmetro n> <tipo de dato>)
RETURNS <tipo_dato>
AS
BEGIN
DECLARE <nombre_variable> <tipo de dato>
<codigo_plsql>
RETURN (<nombre_variable>)
END

Ejemplo:

CREATE FUNCTION dbo.Paises (@paisid Int)
RETURNS @pais TABLE (IdPais int, nombrePais nvarchar(255))
AS
BEGIN
INSERT @pais
select * from dbo.tblPaises
where IdPais=@paisid
RETURN
END

CREATE FUNCTION IVA (@cantidad money)
RETURNS money
AS
BEGIN
DECLARE @resultado money
SET @resultado = @cantidad * 0.18
RETURN (@resultado)
END
Ejecucin de la funcin:
SELECT * FROM <nombre_funcin> (<parmetro 1>, <parmetro n>)
o
SELECT <campo 1>, <campo n>, <nombre_funcin> (<parmetro 1>, <parmetro n>) FROM
<nombre_tabla>
Ejemplo:
select * from Paises(1)
SELECT TOP(10) name, listprice, dbo.iva(listprice) as IVA FROM
Production.Product WHERE listprice != 0



Procedimientos Almacenados, Funciones Elaborada por: Emilson Acosta
y Triggers
TRIGGERS
Los triggers son subprogramas que se disparan frente a eventos que ocurren en la base de datos.

Sintaxis:

CREATE TRIGGER <nombre_trigger>
ON <tabla>
AFTER INSERT|DELETE|UPDATE
BEGIN
SET NOCOUNT ON;
<codigo>
END

SET NOCOUNT ON, impide que se generen mensajes de texto con cada instruccin que se ejecuta.

Cuando se utilizan triggers se generan las siguientes tablas que son manejadas por el mismo gestor de
base de datos:

Inserted: slo est disponible en las operaciones INSERT y UPDATE y en ella estn los valores
resultantes despus de la insercin o actualizacin.
Deleted: slo est disponible en las operaciones UPDATE y DELETE, en ella estn los valores
anteriores a la ejecucin de la actualizacin o borrado.

Ejemplo:

CREATE TRIGGER historico_habitantes
ON tblHabitantes
AFTER UPDATE
AS
BEGIN
-- SET NOCOUNT ON impide que se generen mensajes de texto
-- con cada instruccin
SET NOCOUNT ON;
INSERT INTO tbl_historicos_habitantes
(IdHabitante, nombreHabitante, IdMunicipio)
SELECT IdHabitante, nombreHabitante, IdMunicipio
FROM DELETED
END

Ejemplo de desencadenador de un trigger:

update tblHabitantes set nombreHabitante='Emilson Acosta' where
nombreHabitante='Roberto Bueso'

Das könnte Ihnen auch gefallen