Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ayudantia 7 - ProcedimientosAlmacenados PDF
Ayudantia 7 - ProcedimientosAlmacenados PDF
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias
Base de datos
Procedimientos Almacenados y Funciones
Eduardo Saavedra A.
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Como tal, posee acceso directo a los datos que necesita manipular y solo
necesita enviar sus resultados de regreso al usuario, deshaciéndose de la
sobrecarga resultante de comunicar grandes cantidades de datos salientes y
entrantes.
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Ventajas
Diseño modular.
Aplicaciones que acceden la misma Base de Datos pueden compartir los
procedimientos almacenados, eliminando el código doble y reduciendo el tamaño
de las aplicaciones.
El fácil mantenimiento.
Mejoras en tráfico de RED!!!
Cuando un procedimiento se actualiza, los cambios se reflejan automáticamente
en todas las aplicaciones, sin la necesidad de recompilar y relinkear. Las
aplicaciones son compiladas sólo una vez para cada cliente.
Los procedimientos almacenados son ejecutados por el servidor, no por el cliente
lo que reduce el tráfico en la red y mejora el performance o desempeño,
especialmente para el acceso del cliente remoto.
Están almacenados en los servidores y asegurados por las medidas tomadas en
la instalación, lo que impide que los usuarios normales puedan modificarlos e
incluso desconocen su existencia. Este es un elemento de gran valor en lo que a
seguridad respecta.
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Un procedimiento almacenado
Un procedimiento almacenado
Un procedimiento almacenado
Un procedimiento almacenado
Un procedimiento almacenado
Un procedimiento almacenado
Un procedimiento almacenado
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Declarar variables en un SP
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
date
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
date
etc...
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
date
etc...
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
date
etc...
Declarar variables en un SP
Uno de los potenciales de los SP es que son capaces de manejar Variables, tal y
como en un lenguaje de programación de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definición de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendrían:
varchar(n)
int
bigint
float
date
etc...
Declarar variables en un SP
Declarar variables en un SP
Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).
Declarar variables en un SP
Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
Declarar variables en un SP
Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
Declarar variables en un SP
Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
Declarar variables en un SP
Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
Parámetros de SP
SET @Semestre = (
SELECT Semestre_Precio.Semestre
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre
HAVING sum(Semestre_Precio.PRECIO) = (
SELECT max(maximo.Suma_Periodo)
FROM(
SELECT sum(Semestre_Precio.PRECIO) as Suma_Periodo
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre ) as maximo
)
) SELECT @Semestre as ’Semestre’;
Parámetros de SP
SET @Semestre = (
SELECT Semestre_Precio.Semestre
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre
HAVING sum(Semestre_Precio.PRECIO) = (
SELECT max(maximo.Suma_Periodo)
FROM(
SELECT sum(Semestre_Precio.PRECIO) as Suma_Periodo
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre ) as maximo
)
) SELECT @Semestre as ’Semestre’;
Nuevamente se utiliza la sentencia final para mostrar una tabla con el resultado,
sin embargo, lo ideal es usar el parámetro de salida @Semestre !!
Parámetros de SP
SET @Semestre = (
SELECT Semestre_Precio.Semestre
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre
HAVING sum(Semestre_Precio.PRECIO) = (
SELECT max(maximo.Suma_Periodo)
FROM(
SELECT sum(Semestre_Precio.PRECIO) as Suma_Periodo
FROM (
SELECT YEAR(FECHA) as ANHO, MONTH(FECHA)/7+1 as Semestre, PRECIO
FROM AUTOMOVIL
WHERE YEAR(FECHA)=@Anio
) as Semestre_Precio
GROUP BY Semestre_Precio.Semestre ) as maximo
)
) SELECT @Semestre as ’Semestre’;
Nuevamente se utiliza la sentencia final para mostrar una tabla con el resultado,
sin embargo, lo ideal es usar el parámetro de salida @Semestre !!
Entonces... ¿Como llamarlo?
Eduardo Saavedra A. SQL Server 2005
Introducción
Programación Creación de un SP
Procedimientos en Procedimientos... Invocando un SP
SP Genérico Declaración de variables
Funciones Declaración de Parámetros
Referencias
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
SPs “Anidados”
SPs “Anidados”
SPs “Anidados”
SPs “Anidados”
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
SPs “Anidados”
SET @Ciudad=(
SELECT TOP 1 Ciudad
FROM Cliente as C
INNER JOIN AUTOMOVIL AS A ON A.RUT = C.RUT
ORDER BY A.PRECIO DESC)
IF @Ciudad = ’Santiago’
BEGIN
SET @Nivel = ’1’
END
ELSE
SET @Nivel = ’0’
Y por supuesto, la variable @Semestre podría ser utilizada en cualquier lugar del
procedimiento Padre ;)
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
La estructura de un SP
La estructura de un SP
La estructura de un SP
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
--Fin Cuerpo SP
;
La estructura de un SP
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el código del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
La estructura de un SP
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el código del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
Asimismo para borrar un SP, basta con:
La estructura de un SP
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el código del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
Asimismo para borrar un SP, basta con:
DROP PROCEDURE nombre_sp ;
Eduardo Saavedra A. SQL Server 2005
Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Sin duda los mas utilizados son los escalares, ya que los demás pueden ser
suplidos por vistas (a excepción del de multiples declaraciones que puede ser una
herramienta sumamente potente)
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Declarar funciones
Contenidos
1 Introducción
Ventajas
2 Programación
Creación de un SP
Invocando un SP
Declaración de variables
Declaración de Parámetros
3 Procedimientos en Procedimientos...
4 SP Genérico
5 Funciones
Conceptos
Ejemplo
6 Referencias
Referencias
Bibliografía
[Funcionalidades SQL Server, 2005] Microsoft Team.
MSDN
[SQL Server 2005 for dummies, 2003] Microsoft Team.
Capitulos 14 y 15
[Manual SP y Funciones, 2002] Mitchell Harper.
http://www.devarticles.com
Referencias
Bibliografía
[Funcionalidades SQL Server, 2005] Microsoft Team.
MSDN
[SQL Server 2005 for dummies, 2003] Microsoft Team.
Capitulos 14 y 15
[Manual SP y Funciones, 2002] Mitchell Harper.
http://www.devarticles.com
Referencias
Bibliografía
[Funcionalidades SQL Server, 2005] Microsoft Team.
MSDN
[SQL Server 2005 for dummies, 2003] Microsoft Team.
Capitulos 14 y 15
[Manual SP y Funciones, 2002] Mitchell Harper.
http://www.devarticles.com
Dudas, Consultas?
4 de noviembre de 2008