Está en la página 1de 92

Introducción

Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

Base de datos
Procedimientos Almacenados y Funciones

Eduardo Saavedra A.

Universidad Nacional Andrés Bello


4 de noviembre de 2008

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
Ventajas
SP Genérico
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
Ventajas
SP Genérico
Funciones
Referencias

Procedimiento Almacenado (SP)

Un procedimiento almacenado (SP) es un programa (o procedimiento) el cual es


almacenado físicamente en una base de datos.

Generalmente son escritos en un lenguaje de bases de datos propietario como


PL/SQL para Oracle database o PL/PgSQL para PostgreSQL.

La ventaja de un procedimiento almacenado es que al ser ejecutado, en


respuesta a una petición de usuario, es ejecutado directamente en el motor de
bases de datos, el cual usualmente corre en un servidor.

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.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
Ventajas
SP Genérico
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
Ventajas
SP Genérico
Funciones
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.

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

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

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?


Lo que ocurrirá será que para la base de datos Autos, se creará un procedimiento
almacenado llamado sp_Ciudades.

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?


Lo que ocurrirá será que para la base de datos Autos, se creará un procedimiento
almacenado llamado sp_Ciudades.
Este procedimiento podrá ser llamado desde cualquier punto en alguna aplicación
externa al SGBD.

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?


Lo que ocurrirá será que para la base de datos Autos, se creará un procedimiento
almacenado llamado sp_Ciudades.
Este procedimiento podrá ser llamado desde cualquier punto en alguna aplicación
externa al SGBD.
Por supuesto, también puede ser llamado de forma “interna”

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?


Lo que ocurrirá será que para la base de datos Autos, se creará un procedimiento
almacenado llamado sp_Ciudades.
Este procedimiento podrá ser llamado desde cualquier punto en alguna aplicación
externa al SGBD.
Por supuesto, también puede ser llamado de forma “interna”

Este procedimiento es de los más básicos, donde simplemente se genera una


tabla temporal mostrando las ciudades de la tabla cliente.

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

Un procedimiento almacenado

Utilizando la base de datos Autos:


1 CREATE PROCEDURE sp_Ciudades
2 AS
3 SELECT DISTINCT Ciudad
4 FROM Cliente;

¿Qué cree que genera el código anterior?


Lo que ocurrirá será que para la base de datos Autos, se creará un procedimiento
almacenado llamado sp_Ciudades.
Este procedimiento podrá ser llamado desde cualquier punto en alguna aplicación
externa al SGBD.
Por supuesto, también puede ser llamado de forma “interna”

Este procedimiento es de los más básicos, donde simplemente se genera una


tabla temporal mostrando las ciudades de la tabla cliente.

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

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

Invocación de un procedimiento almacenado

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

Invocación de un procedimiento almacenado

El siguiente código invoca un SP.


1 EXEC sp_Ciudades;

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

Invocación de un procedimiento almacenado

El siguiente código invoca un SP.


1 EXEC sp_Ciudades;

Como es de esperar el resultado de la ejecución es la siguiente:

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

Invocación de un procedimiento almacenado

El siguiente código invoca un SP.


1 EXEC sp_Ciudades;

Como es de esperar el resultado de la ejecución es la siguiente:

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

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

Declarar variables en un SP

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

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.

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

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 @.

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

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.

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

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:

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

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)

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

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

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

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

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

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

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

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

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

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...

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

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...

Además para asignar un valor a una variable (A ←0 50 ) se debe utilizar la palabra


clave SET.

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

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...

Además para asignar un valor a una variable (A ←0 50 ) se debe utilizar la palabra


clave SET.
Se pueden “Setear” a una variable los resultados de un SQL que devuelva UN
registro.

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

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...

Además para asignar un valor a una variable (A ←0 50 ) se debe utilizar la palabra


clave SET.
Se pueden “Setear” a una variable los resultados de un SQL que devuelva UN
registro.
Una variable puede ser declarada como de “Salida” (output)

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

Declarar variables en un SP

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

Declarar variables en un SP

Por lo tanto sería invalido declarar @Nivel como int y tratar de “Setearlo” con
’Hola!’(de tipo varchar).

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

Declarar variables en un SP

Por lo tanto sería 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. 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

Declarar variables en un SP

Por lo tanto sería 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. 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

Declarar variables en un SP

Por lo tanto sería 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’;

Lo marcado en rojo es lo que el SGBD desplegará, esto no siempre es válido ya


que un SP debe devolver algún valor.

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

Declarar variables en un SP

Por lo tanto sería 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’;

Lo marcado en rojo es lo que el SGBD desplegará, esto no siempre es válido ya


que un SP debe devolver algún valor.
De todas maneras es útil para ver lo que ocurre en el SP.
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

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

Parámetros de SP

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parámetros, ellos deben estar antes de la palabra clave AS

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parámetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parámetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE

Respectivo a los parámetros de entrada


Un usuario puede usar un SP con distintos parámetros de entrada y obtendrá
siempre resultados distintos.

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

Parámetros de SP

Como es de esperar, los SP al igual que las funciones en lenguajes de


programación, son capaces de aceptar parámetros de entrada y salida.
Esto logra una gran versatilidad del uso de los SP
Para definir parámetros, ellos deben estar antes de la palabra clave AS
No se requiere declararlos con la palabra DECLARE

Respectivo a los parámetros de entrada


Un usuario puede usar un SP con distintos parámetros de entrada y obtendrá
siempre resultados distintos.

Respectivo a los parámetros de salida


Los parámetros de salida SIEMPRE deben estar declarados de la siguiente
forma:
@Parámetro OUTPUT
Para adquirir los parámetros de salida, es fundamental haber definido la variable
antes de llamar al SP.

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

Parámetros de SP

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

Parámetros de SP

Ejemplo de uso de parámetros


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. 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

Parámetros de SP

Ejemplo de uso de parámetros


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 parámetro de salida @Semestre !!

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

Parámetros de SP

Ejemplo de uso de parámetros


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 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

Llamadas de un SP con parámetros de salida

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:


EXEC sp_SemestreMax ’2008’

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:


EXEC sp_SemestreMax ’2008’
Sin embargo, como se definió una variable de salida, es necesario declarar esa
variable antes de llamar al SP. Luego de esto se utiliza como parámetro para
quedar “cargada” con el valor de salida.

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:


EXEC sp_SemestreMax ’2008’
Sin embargo, como se definió una variable de salida, es necesario declarar esa
variable antes de llamar al SP. Luego de esto se utiliza como parámetro para
quedar “cargada” con el valor de salida.
Luego de terminar el SP es posible utilizar esa variable declarada:

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:


EXEC sp_SemestreMax ’2008’
Sin embargo, como se definió una variable de salida, es necesario declarar esa
variable antes de llamar al SP. Luego de esto se utiliza como parámetro para
quedar “cargada” con el valor de salida.
Luego de terminar el SP es posible utilizar esa variable declarada:

Ejemplo de uso de parámetros


DECLARE @Semestre varchar(80)
EXEC sp_SemestreMax ’2007’, @Semestre OUTPUT
SELECT @Semestre

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

Llamadas de un SP con parámetros de salida

Como se podría pensar, la llamada debería ser:


EXEC sp_SemestreMax ’2008’
Sin embargo, como se definió una variable de salida, es necesario declarar esa
variable antes de llamar al SP. Luego de esto se utiliza como parámetro para
quedar “cargada” con el valor de salida.
Luego de terminar el SP es posible utilizar esa variable declarada:

Ejemplo de uso de parámetros


DECLARE @Semestre varchar(80)
EXEC sp_SemestreMax ’2007’, @Semestre OUTPUT
SELECT @Semestre

Las llamadas a SP con parámetros deben realizarce utilizando la palabra clave


EXEC seguidas de el nombre del procedimiento, luego todos los parámetros
requeridos deben ir separados por , (coma).

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

SPs “Anidados”

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

SPs “Anidados”

Como bien se menciono anteriormente, un SP puede ser utilizado dentro de otro

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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 podría ser utilizada en cualquier lugar del
procedimiento Padre ;)

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Si llegamos a un concenso, podríamos decir que la estructura de un SP típico es


la siguiente:

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Si llegamos a un concenso, podríamos decir que la estructura de un SP típico 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. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Si llegamos a un concenso, podríamos decir que la estructura de un SP típico 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 código del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Si llegamos a un concenso, podríamos decir que la estructura de un SP típico 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 código del SP, en vez de usar la palabra CREATE
inicialmente se utiliza ALTER .
Asimismo para borrar un SP, basta con:

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
Referencias

La estructura de un SP

Si llegamos a un concenso, podríamos decir que la estructura de un SP típico 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 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

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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP


Existen para SQL server 3 tipos:

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP


Existen para SQL server 3 tipos:
Escalares: Retorna valores “Constantes”

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP


Existen para SQL server 3 tipos:
Escalares: Retorna valores “Constantes”
De tablas: Maneja tablas de tal forma de retornar un set de tuplas.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP


Existen para SQL server 3 tipos:
Escalares: Retorna valores “Constantes”
De tablas: Maneja tablas de tal forma de retornar un set de tuplas.
De multiples declaraciones: Maneja tablas incluyendo su estructura base.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

La estructura es casi idéntica a un SP


Existen para SQL server 3 tipos:
Escalares: Retorna valores “Constantes”
De tablas: Maneja tablas de tal forma de retornar un set de tuplas.
De multiples declaraciones: Maneja tablas incluyendo su estructura base.

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)

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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.
Ejemplo:

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.
Ejemplo:
CREATE FUNCTION dbo.Metros_a_pulgadas (@Metros DECIMAL(10,3), @VAR_DUMMY INT)
RETURNS DECIMAL(10,3)
AS
BEGIN
DECLARE @Pulgadas DECIMAL(10,3)
SET @Pulgadas = (@Metros * 3.281 ) * 12 +@VAR_DUMMY
RETURN @Pulgadas
END
;

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.
Ejemplo:
CREATE FUNCTION dbo.Metros_a_pulgadas (@Metros DECIMAL(10,3), @VAR_DUMMY INT)
RETURNS DECIMAL(10,3)
AS
BEGIN
DECLARE @Pulgadas DECIMAL(10,3)
SET @Pulgadas = (@Metros * 3.281 ) * 12 +@VAR_DUMMY
RETURN @Pulgadas
END
;

Las palabras marcadas son las mas importantes.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.
Ejemplo:
CREATE FUNCTION dbo.Metros_a_pulgadas (@Metros DECIMAL(10,3), @VAR_DUMMY INT)
RETURNS DECIMAL(10,3)
AS
BEGIN
DECLARE @Pulgadas DECIMAL(10,3)
SET @Pulgadas = (@Metros * 3.281 ) * 12 +@VAR_DUMMY
RETURN @Pulgadas
END
;

Las palabras marcadas son las mas importantes.


se debe declarar el tipo de retorno de la función

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos... Conceptos
SP Genérico Ejemplo
Funciones
Referencias

Declarar funciones

Las funciones son muy similares a las utilizadas en cualquier lenguaje de


programación, se usan paréntesis para los parámetros y se utiliza la palabra clave
return para devolver valores.
Ejemplo:
CREATE FUNCTION dbo.Metros_a_pulgadas (@Metros DECIMAL(10,3), @VAR_DUMMY INT)
RETURNS DECIMAL(10,3)
AS
BEGIN
DECLARE @Pulgadas DECIMAL(10,3)
SET @Pulgadas = (@Metros * 3.281 ) * 12 +@VAR_DUMMY
RETURN @Pulgadas
END
;

Las palabras marcadas son las mas importantes.


se debe declarar el tipo de retorno de la función
Al final de la instrucciones debe ir un RETURN, con la variable a retornar, seguido
de un END.

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
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

Eduardo Saavedra A. SQL Server 2005


Introducción
Programación
Procedimientos en Procedimientos...
SP Genérico
Funciones
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
Dudas, Consultas?
4 de noviembre de 2008

Eduardo Saavedra A. SQL Server 2005

También podría gustarte