Blog

SQL – Crear un Stored Procedure

Posted by:

DEFINICIÓN:

Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un manejador de bases de datos a otro. 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 separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

COMO SE GENERAN:

Podemos crear un Stored Procedure a pelo o visualmente. Para ello podemos utilizar el Enterprise Manager o el Query Analizer de MsSQL

StoredProcedure

Si lo hacemos por el Enterprise Manager, encima de la base de datos, desplegaremos la carpeta de storeds, botón derecho y “New Stored Procedure”

El Enterprise Manager por defecto pone:

CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS

En Procedure Name colocamos el nombre del Stored que deseamos, y a continuación del AS las consultas que queramos:

CREATE PROCEDURE DIC_FORO

AS
SET NOCOUNT ON
SELECT Campos FROM Tabla With(NoLock)
SET NOCOUNT OFF
GO


Los Storeds admiten parámetros. Sirven para poder realizar querys más precisas.

Por ejemplo:

CREATE PROCEDURE DIC_FORO (@IdUsuario int=0)
AS SET NOCOUNT ON
SELECT * FROM Usuario With(NoLock) WHERE Usuario=@IdUsuario
SET NOCOUNT OFF
GO

También podemos utilizar parámetros de salida, para retornar datos. Para ello declararemos el parámetro como Output.

EJECUCIÓN

La forma más sencilla de ejecutar un Stored Procedure, es mediante el comando EXEC seguido del nombre del Stored Procedure:

EXEC PROCEDURE_NAME

si este tuviera parámetros, después del nombre irían los parámetros a continuación del nombre separados por coma. Pongamos un ejemplo de un Procedure con 3 parámetros:

EXEC PROCEDURE_NAME @Parametro1=valor1, @Parametro3=valor3

EXEC PROCEDURE_NAME valor1, null, valor3

En ocasiones nos podemos encontrar con la siguiente sentencia para ejecutar un Stored:

EXEC @RC = PROCEDURE_NAME Parametro1, Parametro2, Parametro_n

RC significa RowCount, y se declara para saber el número de filas que devuelve el Procedure. Previamente a la ejecución, debemos declarar esta variable mediante (@@Rowcount)

DECLARE @RC int

EXEC @RC = PROCEDURE_NAME Parametro1, Parametro2, Parametro_n

0


About the Author:

Add a Comment

UA-30641277-1