PROCEDIMIENTOS
ALMACENADOS
I N G . W I L E R A RT U RO P O N C E B E N I T E S
2 0 2 2
Procedimientos Almacenados
Son un conjunto de instrucciones de
Transact-SQL que pueden aceptar y
devolver parámetros proporcionados por
el usuario.
Procedimientos Almacenados del Sistema
Procedimientos Almacenados definidos por el
usuario
Tipos de procedimientos almacenados
Generalmente están guardados en la base de datos MASTER
son identificados por iniciar en SP, permiten realizar una amplia
variedad de tareas.
A continuación se muestra algunos procedimientos almacenados
del sistema:
Procedimientos Almacenados del Sistema:
Sp_columns
Sp_column_privileges
Sp_databases
Sp_fkeys
Sp_pkeys
Sp_tables
Sp_server_info
Sp_statistics
Ejemplos
-- BD: dbPasajesAereos
-- ===================
--Procedimiento del sistema que muestra
--las columnas de la tabla país
sp_columns pais
--Procedimiento almacenado del sistema para mostrar los
--privilegios de las columnas involucradas de la tabla pasajero
Sp_column_privileges pasajero
--Procedimiento almacenado que muestra las características
--de nuestro servidor activo
sp_server_info
--procedimiento almacenado que muestra donde se hace referencia
--a la tabla pasajero
Sp_fkeys pasajero
--Procedimiento almacenado que muestra la llave primaria
--de la tabla pasajero
Sp_pkeys pasajero
Son procedimientos que se implementan en forma
personalizada según las necesidades del usuario.
Procedimientos Almacenados definidos por el usuario:
Los Procedimientos Almacenados pueden tener parámetros
de entrada y salida.
Create procedure Nombre_Procedimiento
@parámetro1 [tipo dato],
@parámetro2 [tipo dato],
@parámetro3 [tipo dato]
AS
<Instrucciones>
Procedimientos Almacenados - Sintaxis
Implementar un procedimiento almacenado que muestre el listado de los países y su total de pasajeros.
Ejemplo 1:
Tabla Pasajero – País
-- Evaluamos si ya existe el procedimiento almacenado que
-- queremos implementar, si ya existe lo eliminamos
if object_id('pasajerosxpais') is not null
begin
drop procedure pasajerosxpais
end
go
--Implementamos nuestro procedimiento almacenado
create procedure pasajerosxpais
as
select pai.nombre,count(*) as [Total]
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go
--Ejecutamos el procedimiento almacenado
exec pasajerosxpais
Ejemplo 2:
Implementar un procedimiento almacenado
que permita mostrar los pagos de un
determinado pasajero, considerar para este
caso como parámetro de búsqueda el
número de documento del pasajero.
Tablas: Pasajero - Pais - Pago
-- Evaluamos si ya existe el procedimiento almacenado que queremos
implementar, si ya existe lo eliminamos
if object_id('pagosxpasajero') is not null
begin
drop procedure pagosxpasajero
end
go
-- Implementamos nuestro procedimiento almacenado
create procedure pagosxpasajero
@num_documento varchar(12)
as
select fecha,monto,tipo_comprobante,num_comprobante
from pago where idpasajero=
(select idpasajero from pasajero
where num_documento=@num_documento)
go
-- Ejecutamos el procedimiento almacenado y le enviamos el parámetro
de entrada
exec pagosxpasajero '47715777'
Ejemplo 3:
Implementar un procedimiento almacenado
que permita registrar un Nuevo país, para
este caso definir como parámetro de entrada
todos los campos referentes a la tabla país.
Tabla: País
--Evaluamos si ya existe el procedimiento almacenado
que queremos implementar, si ya existe lo eliminamos
if object_id('nuevopais') is not null
begin
drop procedure nuevopais
end
go
--Implementamos nuestro procedimiento almacenado
create procedure nuevopais
@idpais char(4),
@nombre varchar(30)
as
insert into pais (idpais,nombre)
values(@idpais,@nombre)
go
--Ejecutamos el procedimiento almacenado y le
enviamos los parámetros de entrada
exec nuevopais '0014','Dinamarca'
Ejemplo 4:
Implementar un procedimiento almacenado
que retorne el total de pagos recibidos en
una determinada fecha.
Tabla Pago
-- Evaluamos si ya existe el procedimiento almacenado que
queremos implementar, si ya existe lo eliminamos
if object_id('pagosxfecha') is not null
begin
drop procedure pagosxfecha
end
go
-- Implementamos nuestro procedimiento almacenado
create procedure pagosxfecha
@fecha date,
@total money output
as
select @total=sum(monto) from pago
where fecha=@fecha
go
-- Ejecutamos el procedimiento almacenado y le enviamos los
parámetros
declare @t money
exec pagosxfecha '2014-05-05’, @total=@t output
print 'Total' + cast(@t as char(10))
¿Preguntas……..?
Base de datos:ViajesFII
Estructura de tablas y DER
Scripts
Videos tutoriales
1 Procedimientos Almacenados WPB.pdf

1 Procedimientos Almacenados WPB.pdf

  • 1.
    PROCEDIMIENTOS ALMACENADOS I N G. W I L E R A RT U RO P O N C E B E N I T E S 2 0 2 2
  • 2.
    Procedimientos Almacenados Son unconjunto de instrucciones de Transact-SQL que pueden aceptar y devolver parámetros proporcionados por el usuario.
  • 3.
    Procedimientos Almacenados delSistema Procedimientos Almacenados definidos por el usuario Tipos de procedimientos almacenados
  • 4.
    Generalmente están guardadosen la base de datos MASTER son identificados por iniciar en SP, permiten realizar una amplia variedad de tareas. A continuación se muestra algunos procedimientos almacenados del sistema: Procedimientos Almacenados del Sistema: Sp_columns Sp_column_privileges Sp_databases Sp_fkeys Sp_pkeys Sp_tables Sp_server_info Sp_statistics
  • 5.
    Ejemplos -- BD: dbPasajesAereos --=================== --Procedimiento del sistema que muestra --las columnas de la tabla país sp_columns pais --Procedimiento almacenado del sistema para mostrar los --privilegios de las columnas involucradas de la tabla pasajero Sp_column_privileges pasajero
  • 6.
    --Procedimiento almacenado quemuestra las características --de nuestro servidor activo sp_server_info --procedimiento almacenado que muestra donde se hace referencia --a la tabla pasajero Sp_fkeys pasajero --Procedimiento almacenado que muestra la llave primaria --de la tabla pasajero Sp_pkeys pasajero
  • 7.
    Son procedimientos quese implementan en forma personalizada según las necesidades del usuario. Procedimientos Almacenados definidos por el usuario: Los Procedimientos Almacenados pueden tener parámetros de entrada y salida.
  • 8.
    Create procedure Nombre_Procedimiento @parámetro1[tipo dato], @parámetro2 [tipo dato], @parámetro3 [tipo dato] AS <Instrucciones> Procedimientos Almacenados - Sintaxis
  • 9.
    Implementar un procedimientoalmacenado que muestre el listado de los países y su total de pasajeros. Ejemplo 1: Tabla Pasajero – País -- Evaluamos si ya existe el procedimiento almacenado que -- queremos implementar, si ya existe lo eliminamos if object_id('pasajerosxpais') is not null begin drop procedure pasajerosxpais end go --Implementamos nuestro procedimiento almacenado create procedure pasajerosxpais as select pai.nombre,count(*) as [Total] from pasajero pas inner join pais pai on pas.idpais=pai.idpais group by pai.nombre go --Ejecutamos el procedimiento almacenado exec pasajerosxpais
  • 10.
    Ejemplo 2: Implementar unprocedimiento almacenado que permita mostrar los pagos de un determinado pasajero, considerar para este caso como parámetro de búsqueda el número de documento del pasajero. Tablas: Pasajero - Pais - Pago -- Evaluamos si ya existe el procedimiento almacenado que queremos implementar, si ya existe lo eliminamos if object_id('pagosxpasajero') is not null begin drop procedure pagosxpasajero end go -- Implementamos nuestro procedimiento almacenado create procedure pagosxpasajero @num_documento varchar(12) as select fecha,monto,tipo_comprobante,num_comprobante from pago where idpasajero= (select idpasajero from pasajero where num_documento=@num_documento) go -- Ejecutamos el procedimiento almacenado y le enviamos el parámetro de entrada exec pagosxpasajero '47715777'
  • 11.
    Ejemplo 3: Implementar unprocedimiento almacenado que permita registrar un Nuevo país, para este caso definir como parámetro de entrada todos los campos referentes a la tabla país. Tabla: País --Evaluamos si ya existe el procedimiento almacenado que queremos implementar, si ya existe lo eliminamos if object_id('nuevopais') is not null begin drop procedure nuevopais end go --Implementamos nuestro procedimiento almacenado create procedure nuevopais @idpais char(4), @nombre varchar(30) as insert into pais (idpais,nombre) values(@idpais,@nombre) go --Ejecutamos el procedimiento almacenado y le enviamos los parámetros de entrada exec nuevopais '0014','Dinamarca'
  • 12.
    Ejemplo 4: Implementar unprocedimiento almacenado que retorne el total de pagos recibidos en una determinada fecha. Tabla Pago -- Evaluamos si ya existe el procedimiento almacenado que queremos implementar, si ya existe lo eliminamos if object_id('pagosxfecha') is not null begin drop procedure pagosxfecha end go -- Implementamos nuestro procedimiento almacenado create procedure pagosxfecha @fecha date, @total money output as select @total=sum(monto) from pago where fecha=@fecha go -- Ejecutamos el procedimiento almacenado y le enviamos los parámetros declare @t money exec pagosxfecha '2014-05-05’, @total=@t output print 'Total' + cast(@t as char(10))
  • 13.
  • 14.
  • 15.
  • 16.