Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Base de datos
Procedimientos Almacenados y Funciones
Eduardo Saavedra A.
Universidad Nacional Andrs Bello
4 de noviembre de 2008
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Ventajas
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Ventajas
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Ventajas
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Ventajas
Ventajas
Diseo modular.
Aplicaciones que acceden la misma Base de Datos pueden compartir los
procedimientos almacenados, eliminando el cdigo doble y reduciendo el tamao
de las aplicaciones.
El fcil mantenimiento.
Mejoras en trfico de RED!!!
Cuando un procedimiento se actualiza, los cambios se reflejan automticamente
en todas las aplicaciones, sin la necesidad de recompilar y relinkear. Las
aplicaciones son compiladas slo una vez para cada cliente.
Los procedimientos almacenados son ejecutados por el servidor, no por el cliente
lo que reduce el trfico en la red y mejora el performance o desempeo,
especialmente para el acceso del cliente remoto.
Estn almacenados en los servidores y asegurados por las medidas tomadas en
la instalacin, 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.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Un procedimiento almacenado
Utilizando la base de datos Autos:
1
2
3
4
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
EXEC sp_Ciudades;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
EXEC sp_Ciudades;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
EXEC sp_Ciudades;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
date
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
date
etc...
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
date
etc...
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
date
etc...
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
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 programacin de alto nivel.
Todas la variables deben ser antecedidades por la palabra. clave DECLARE y
antes de la definicin de su nombre una @.
Las variables a declarar pueden ser de cualquier tipo que el SGBD soporte.
Para SQL Server por ejemplo se tendran:
varchar(n)
int
bigint
float
date
etc...
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Por lo tanto sera invalido declarar @Nivel como int y tratar de Setearlo con
Hola!(de tipo varchar).
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Por lo tanto sera invalido declarar @Nivel como int y tratar de Setearlo con
Hola!(de tipo varchar).
Ejemplo de uso de variables
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
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
SELECT @Nivel as Nivel;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Por lo tanto sera invalido declarar @Nivel como int y tratar de Setearlo con
Hola!(de tipo varchar).
Ejemplo de uso de variables
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
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
SELECT @Nivel as Nivel;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Por lo tanto sera invalido declarar @Nivel como int y tratar de Setearlo con
Hola!(de tipo varchar).
Ejemplo de uso de variables
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
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
SELECT @Nivel as Nivel;
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Declarar variables en un SP
Por lo tanto sera invalido declarar @Nivel como int y tratar de Setearlo con
Hola!(de tipo varchar).
Ejemplo de uso de variables
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
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
SELECT @Nivel as Nivel;
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parmetros, ellos deben estar antes de la palabra clave AS
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parmetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parmetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE
Respectivo a los parmetros de entrada
Un usuario puede usar un SP con distintos parmetros de entrada y obtendr
siempre resultados distintos.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Como es de esperar, los SP al igual que las funciones en lenguajes de
programacin, son capaces de aceptar parmetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parmetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE
Respectivo a los parmetros de entrada
Un usuario puede usar un SP con distintos parmetros de entrada y obtendr
siempre resultados distintos.
Respectivo a los parmetros de salida
Los parmetros de salida SIEMPRE deben estar declarados de la siguiente
forma:
@Parmetro OUTPUT
Para adquirir los parmetros de salida, es fundamental haber definido la variable
antes de llamar al SP.
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Ejemplo de uso de parmetros
ALTER PROCEDURE sp_SemestreMax
@Anio varchar(80), @Semestre varchar(80) out
AS
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;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Ejemplo de uso de parmetros
ALTER PROCEDURE sp_SemestreMax
@Anio varchar(80), @Semestre varchar(80) out
AS
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 parmetro de salida @Semestre !!
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Parmetros de SP
Ejemplo de uso de parmetros
ALTER PROCEDURE sp_SemestreMax
@Anio varchar(80), @Semestre varchar(80) out
AS
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 parmetro de salida @Semestre !!
Entonces... Como llamarlo?
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
SPs Anidados
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
SPs Anidados
Como bien se menciono anteriormente, un SP puede ser utilizado dentro de otro
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
SPs Anidados
Como bien se menciono anteriormente, un SP puede ser utilizado dentro de otro
Por ejemplo, si agregamos esto en el primer procedimiento visto:
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
SPs Anidados
Como bien se menciono anteriormente, un SP puede ser utilizado dentro de otro
Por ejemplo, si agregamos esto en el primer procedimiento visto:
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
DECLARE @Semestre varchar(80)
EXEC sp_SemestreMax 2007, @Semestre output
PRINT @Semestre
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
SELECT @Nivel as Nivel;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
SPs Anidados
Como bien se menciono anteriormente, un SP puede ser utilizado dentro de otro
Por ejemplo, si agregamos esto en el primer procedimiento visto:
ALTER PROCEDURE sp_Ciudades
AS
DECLARE @Nivel varchar(80)
DECLARE @Ciudad varchar(80)
DECLARE @Semestre varchar(80)
EXEC sp_SemestreMax 2007, @Semestre output
PRINT @Semestre
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
SELECT @Nivel as Nivel;
Y por supuesto, la variable @Semestre podra ser utilizada en cualquier lugar del
procedimiento Padre ;)
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Si llegamos a un concenso, podramos decir que la estructura de un SP tpico es
la siguiente:
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Si llegamos a un concenso, podramos decir que la estructura de un SP tpico es
la siguiente:
CREATE PROCEDURE nombre_sp
@Param1 tipo OUT|IN,
@Param2 tipo OUT|IN,
...
@ParamN tipo OUT|IN
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
Sentencias de control &|
SQLs &|
Llamadas a otros SP &|
Etc.
--Fin Cuerpo SP
;
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Si llegamos a un concenso, podramos decir que la estructura de un SP tpico es
la siguiente:
CREATE PROCEDURE nombre_sp
@Param1 tipo OUT|IN,
@Param2 tipo OUT|IN,
...
@ParamN tipo OUT|IN
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
Sentencias de control &|
SQLs &|
Llamadas a otros SP &|
Etc.
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el cdigo del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Si llegamos a un concenso, podramos decir que la estructura de un SP tpico es
la siguiente:
CREATE PROCEDURE nombre_sp
@Param1 tipo OUT|IN,
@Param2 tipo OUT|IN,
...
@ParamN tipo OUT|IN
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
Sentencias de control &|
SQLs &|
Llamadas a otros SP &|
Etc.
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el cdigo del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
Asimismo para borrar un SP, basta con:
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
La estructura de un SP
Si llegamos a un concenso, podramos decir que la estructura de un SP tpico es
la siguiente:
CREATE PROCEDURE nombre_sp
@Param1 tipo OUT|IN,
@Param2 tipo OUT|IN,
...
@ParamN tipo OUT|IN
AS
--Cuerpo SP
DECLARE @Var1 tipo
DECLARE @Var2 tipo
...
DECLARE @VarN tipo
Sentencias de control &|
SQLs &|
Llamadas a otros SP &|
Etc.
--Fin Cuerpo SP
;
Ahora si se quiere actualizar el cdigo 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.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Sin duda los mas utilizados son los escalares, ya que los dems pueden ser
suplidos por vistas (a excepcin del de multiples declaraciones que puede ser una
herramienta sumamente potente)
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Conceptos
Ejemplo
Declarar funciones
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Contenidos
Introduccin
Ventajas
Programacin
Creacin de un SP
Invocando un SP
Declaracin de variables
Declaracin de Parmetros
Procedimientos en Procedimientos...
SP Genrico
Funciones
Conceptos
Ejemplo
Referencias
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Referencias
Bibliografa
[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
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Referencias
Bibliografa
[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
Eduardo Saavedra A.
Introduccin
Programacin
Procedimientos en Procedimientos...
SP Genrico
Funciones
Referencias
Referencias
Bibliografa
[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
Eduardo Saavedra A.