Sei sulla pagina 1di 5

Stored Procedure

Es un grupo de una o varias instrucciones Transact-SQL o una referencia a un método de Common Runtime
Language (CLR) de Microsoft .NET Framework. Los procedimientos se asemejan a las construcciones de otros
lenguajes de programación, porque pueden:
 Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que
realiza la llamada.
 Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden
contener llamadas a otros procedimientos.
 Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado
correctamente o se han producido errores, y el motivo de estos.

Tipos de Procedimientos Almacenados


Definidos por el usuario

Se puede crear en una base de datos definida por el usuario o en todas las bases de datos del sistema excepto en la base
de datos Resource. El procedimiento se puede desarrollar en Transact-SQL o como una referencia a un método de
Common Runtime Language (CLR).

Temporales

Son una forma de procedimientos definidos por el usuario. Los procedimientos temporales son iguales que los
procedimientos permanentes salvo porque se almacenan en tempdb. Hay dos tipos de procedimientos temporales:
locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad. Los procedimientos temporales
locales tienen como primer carácter de sus nombres un solo signo de número (#); solo son visibles en la conexión actual
del usuario y se eliminan cuando se cierra la conexión. Los procedimientos temporales globales presentan dos signos de
número (##) antes del nombre; son visibles para cualquier usuario después de su creación y se eliminan al final de la última
sesión en la que se usa el procedimiento.

Sistema

Se incluyen con SQL Server. Están almacenados físicamente en la base de datos interna y oculta Resource y se muestran
de forma lógica en el esquema sys de cada base de datos definida por el sistema y por el usuario. La base de datos msdb
también contiene procedimientos almacenados del sistema en el esquema dbo que se usan para programar alertas y
trabajos.

Extendidos definidos por el usuario

Le permiten crear sus propias rutinas externas en un lenguaje de programación como puede ser C. estos procedimientos
son DLL que una instancia de SQL Server puede cargar y ejecutar dinámicas.

! Nota

Los procedimientos almacenados extendidos se quitarán en una versión futura de SQL Server. No utilice esta
característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utiliza.
Cree en su lugar procedimientos CLR. Este método constituye una alternativa más consolidada y segura para escribir
procedimientos extendidos.

Ilse Nallely Peña Perea


Related Tasks

DESCRIPCIÓN DE LA TAREA TEMA


DESCRIBE CÓMO SE CREA UN Crear un
PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
DESCRIBE CÓMO SE
Modificar un
MODIFICA UN
Procedimiento
PROCEDIMIENTO
Almacenado
ALMACENADO.
DESCRIBE CÓMO SE ELIMINA Eliminar un
UN PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
DESCRIBE CÓMO SE EJECUTA Ejecutar un
UN PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
Conceder
DESCRIBE CÓMO SE
permisos para
CONSEDEN PERMISOS EN UN
un
PROCEDIMIENTO
Procedimiento
ALMACENADO.
Almacenado
DESCRIBE CÓMO SE
Devolver datos
DEVUELVEN DATOS DE UN
De un
PROCEDIMIENTO
Procedimiento
ALMACENADO A UNA
Almacenado
APLICACIÓN.
DESCRIBE CÓMO SE Volver a
RECOPILA UN compilar un
PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
DESCRIBE CÓMO SE CAMBIA Cambiar el
EL NOMBRE DE UN Nombre de un
PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
Ver la
DESCRIBE CÓMO SE CONSULTA
Definición de
LA DEFINICIÓN DE UN
un
PROCEDIMIENTO
Procedimiento
ALMACENADO.
Almacenado
DESCRIBE CÓMO SE Ver las
CONSULTAN LAS Dependencias
DEPENDENCIAS DE UN De un
PROCEDIMIENTO Procedimiento
ALMACENADO. Almacenado
DESCRIBE CÓMO SE USAN LOS
PARAMETROS EN UN
Parámetros
PROCEDIMIENTO
ALMACENADO.

Ilse Nallely Peña Perea


Estructura de un
STORED PROCEDURE
1. Usar la palabra reservada DELIMITER seguida de una combinación de caracteres que sepas que no aparecerá en
el interior del PROCEDURE.
2. Crear el procedimiento almacenado con el comando CREATE PROCEDURE seguido del nombre que le quieras
asignar.
3. Instrucción BEGIN para indicar que empieza el condigo SQL del procedimiento en SQL.
4. Código SQL que queramos que se ejecute cuando se llame a la rutina.
5. Cerrar el código con la cláusula END seguida de los caracteres definidos con el comando DECLARE.

1. DELIMITER //
2. CREATE PROCEDURE nombre_procedimiento
3. BEGIN
4. /*CODIGO EN SQL A EJECUTAR*/
5. END //

Si el procedimiento incluyera parámetros los pondríamos después del nombre y entre paréntesis. Como en cualquier
lenguaje de programación.

1. DELIMITER //
2. CREATE PROCEDURE nombre_procedimiento(TIPOPARAMETRO parametro1 TIPOVALR,…)
3. BEGIN
4. /*CODIGO EN SQL A EJECUTAR*/
5. END //

Ejemplo de procedimiento
almacenado sencillo

Ilse Nallely Peña Perea


Este sencillo ejemplo permite mostrar el total de países almacenados en una tabla pais con una simple llamada. Para
llamarlo usamos la siguiente línea SQL:

CALL total_paises();

STORED PROCEDURE
con parámetros de
entrada IN
1. DELIMITER //
2. CREATE PROCEDURE total_paises_nombrados_como
3. (IN apalabra CHAR(20))
4. BEGIN
5. SELECT COUNT(*) FROM pais
6. WHERE nombre LIKE palabra;
7. END //

Este “stored procedure” es una rutina SQL que permite calcular el total de países en una tabla pais que contienen con
una “palabra” pasada como parámetro de entrada. Hay que tener en cuenta que la palabra solo puede tener como máximo
20 caracteres ya que el parámetro de entrada “palabra” está definido como CHAR(20).

Para llamar a este método hay que recordar siempre pasar un texto como parámetro de entrada, sino se producirá un
error:

1. CALL total_paises_nombrados_como(‘españa’);

2. /*devolvería el resultado de la consulta*/

/*

Ilse Nallely Peña Perea


Ejemplo de STORED
PROCEDURE con
parámetros de salida
La definición de este tipo de parámetros en los procedimientos almacenados es mediante la palabra OUT.

En el siguiente ejemplo lo veras mejor:

DELIMITER //
CREATE PROCEDURE total_paises
(OUT total INTEGER)
BEGIN
SELECT COUNT (*) INTO total FROM
pais;
END //

Este procedimiento calcula el total de registros de la tabla pais y los inserta con INTO en la variable de salida OUT.

Para llamar al procedimiento SQL y visualizar el contenido de la variable deberé de crear primero una variable, y
después pasársela como parámetro al procedimiento:

1. SET @total = 0;
2. CALL total_paises(@total);
3. SELECT @total;

1. Definido una variable con SET.

2. Llamado al procedimiento con CALL.

3. Mostrado el valor de la variable con SELECT SQL.

Ilse Nallely Peña Perea

Potrebbero piacerti anche