Вы находитесь на странице: 1из 20

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS DE LA COMPUTACION


Carrera de Ingeniera Informtica

TEMA 1

Procedimientos Almacenados

Elaborado por: ING. Ubaldo Prez Ferreira.

Santa Cruz de la Sierra Bolivia


Procedimientos almacenados (PA)
Muchas aplicaciones tienen incluida en sus "clase",
funciones que hacen referencia a cdigo con sentencias
SQL, tal como se muestra en el siguiente ejemplo:

Es decir, que los programadores en los lenguajes


convencionales (Java, C#, etc) desarrollan las
transacciones que actualizan la Base de Datos, por lo
tanto, deben conocer a detalle el diseo de la BD.
Procedimientos almacenados
Los SGDB permiten almacenar en la BD programas que incluyen
sentencias SQL y de control de flujo (Transac-SQL), a estos
programas los denomina Procedimientos Almacenados (PA).
Cada Base de Datos almacena
sus propios PA

PA
Function String GetNombre(xcode int)

Select xnomb=nomb from prov
where cprv=xcprv

return xnomb

Por lo tanto, toda la logica de instrucciones que


estn embebidas en los lenguajes
convencionales, pueden almacenarse en la BD
y ser invocada desde cualquier lenguaje
convencional.
Excecute Proc GetNombre(xcode int)
Procedimientos almacenados
Los Procedimientos Almacenados tambin pueden ser
consumidos desde los Servicios Web (WS).

Servicio Web
PA
Function String GetNombre(xcode int)

Select xnomb=nomb from prov
where cprv=xcprv

Aplicaciones Clientes

return xnomb

Web, Mvil y Escritorio


Base de Datos con PA
Procedimientos almacenados

Un PA mejora notablemente la potencia, eficacia y


flexibilidad de SQL.

Los PA se diferencian de las instrucciones SQL en


que estn pre-compilados. La primera vez que se
ejecuta un procedimiento, el procesador de consultas del
SGBD lo analiza y prepara un Plan de Ejecucin que se
almacena de forma definitiva en una tabla del sistema.
Posteriormente, el PA se ejecuta segn el Plan
Almacenado, lo que implica, que el PA se ejecute casi
de forma instantnea.
Procedimientos almacenados

Para que existen?


Para que usarlos, si puedo tener mis consultas bien
bonitas metida en mi cdigo (como consultas SQL Ad-
hoc)?

El uso ms tpico de los PA es proveer una validacin


integrada en la base de datos, as como proveer
mecanismos de control de acceso a la misma.

Los PA son usados para consolidar y centralizar


lgica que originalmente se implementaba en las
aplicaciones.
Beneficios

Beneficios de los procedimientos almacenados:


Simplifican la ejecucin de tareas repetitivas
Corren ms rpido que las mismas instrucciones
ejecutadas en forma interactiva
Reducen el trfico a travs de la red
Pueden capturar errores antes que ellos puedan entrar a
la base de datos
Establece consistencia porque ejecuta las tareas de la
misma forma
Permite el desarrollo modular de aplicaciones
Ayuda a proveer seguridad
Puede forzar reglas y defaults complejos de los negocios
Tipos de procedimientos almacenados

Procedimientos almacenados definidos por el usuario


Son procedimientos definidos por el usuario que se
deben llamar explcitamente
Triggers
Son procedimientos definidos por el usuario que se
ejecutan automticamente cuando se modifica un dato
en una tabla
Procedimientos del sistema
Procedimientos suministrados por el sistema
Procedimientos extendidos
Procedimientos que hacen llamadas al sistema operativo
y ejecutan tareas a ese nivel
Procedimientos almacenados en SQL Server

En el SQL Server los PAs estan almacenados en area


de Programacin/Procedimiento Almacenado
Como Crear y Eliminar un PA en SQL Server

Sintaxis para crear:


create proc nombre_procedure
as
intrucciones
return
Sintaxis para eleiminar:

drop proc nombre_procedure

Ejemplo
Como Ejecutar un PA en SQL Server

Sintaxis para ejecutar:

[exec | execute] nombre_procedure

Ejemplo:
Uso de variables en los PA

Los procedimientos almacenados pueden crear y


usar variables locales
Las variables slo existen mientras exista el
procedimiento
Las variables no las puede usar otro proceso
Ejemplo:
Uso de parmetros de entrada en PA

Un parmetro de entrada es una variable local


para un PA, que puede recibir un valor desde la
instruccion exec procedure.
Definir parmetros de entrada

Sintaxis simplificada:
create procedure nombre_procedure
(parametros tipo dato default_valor
[, parametros tipo dato default_valor...] )
as
instrucciones
return

Ejemplo:
Paso de parmetros
Sintaxis para paso por nombre:
[exec | execute] procedure procedure_name
parameter_name = value [, parameter_name = value ]
Ejemplo:

Los nombres de los parmetros en la sentencia exec


deben concordar con los nombres de los
parmetros usados en la sentencia create
procedure
Los parmetros pueden pasar en cualquier orden
Valores por default
Se puede asignar un valor por default a un parmetro
cuando l no se indica en la sentencia exec
Ejemplo:
Retorno de valores

El retorno de valores es una variable de un


procedimiento almacenado que puede enviar un
valor a la instruccion exec procedure.
Crear parmetros que retornan valores
Sintaxis:
create procedure nombre_procedure
(nombre_parametro datatype output
[, nombre_parametro datatype output...] )
as
instruccion
Ejemplo: return
Modificar un PA en SQL Server
Gestin de Permisos para los PA

Para permitir que otros usen un procedimiento


almacenado, el propietario debe dar los respectivos
permisos
Sintaxis simplificada:
grant execute
on procedure_name
to user_list
Ejemplo:
grant execute
on proc_update_precio
to jovana, pablo, julio

Вам также может понравиться