Los procedimientos almacenados pueden tener parámetros de entrada y de salida para comunicarse con el programa que los llama.
Sintaxis: MSDN
Ejemplo:
CREATE PROCEDURE BDs
(@COLLATION_NAME VARCHAR(50) = NULL,
@RET INT = 0 OUTPUT)
AS
IF @COLLATION_NAME IS NULL
BEGIN
SELECT * FROM sys.databases WHERE COLLATION_NAME IS NULL
SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME IS NULL)
END
ELSE
BEGIN
SELECT * FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME
SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME)
END
RETURN @RET + 1
GO
Se crea un procedimiento almacenado que acepta un parámetro para filtrar la lista de bases de datos por el collation y retorna en un segundo parametro la cantidad de bases de datos con ese collation, como ejemplo retorna la cantidad de bases de datos mas 1 como valor de retorno.
Procedimientos almacendados parametrizados
Etiquetas: CREATE , PROCEDURE , SQL Server 2005
Procedimientos almacendados
Un procedimiento almacenado es una colección de instrucciones con nombre de sentencias T-Sql.
Ventajas:
- Encapsula la funcionalidad de negocio y crea lógica de aplicación reutilizable.
- Evita la exposición de la estructura de la BD a los usuarios.
- Proporciona mecanismos de seguridad (acceso a tablas a las que no se tiene acceso real a traves de los procedimientos almacenados.)
- Mejorar el rendimiento
- Reducir tráfico en la red
- Reducir vulneravilidad a ataques mediante instrucciones SQL incrustadas en los parámetros.
Creación de procedimientos almacenados.
Sintaxis: MSDN
Ejemplo:
CREATE PROCEDURE BDs
AS
SELECT * FROM sys.databases
GO
Modificación de procedimientos almacenados:
Sintaxis: MSDN
Ejemplo:
ALTER PROCEDURE BDs
AS
SELECT * FROM sys.databases ORDER BY name
GO
Ejecución de un procedimiento almacenado:
Sintaxis: MSDN
Ejemplo:
Exec BDs
Eliminacion de procedimientos almacendos:
Antes de borrar cualquier procedimiento almacenado es recomendable ejecutar el procedimiento almacenado de la BD master sp_depends pare resolver si existe algun procedimiento que dempenda de este:
EXEC sp_depends @objname = N'BDs'
Sintaxis: MSDN
Ejemplo:
DROP PROC BDs
Etiquetas: ALTER , CREATE , DROP , PROCEDURE , SQL Server 2005