Last active
June 10, 2021 20:18
-
-
Save donpandix/f0e4c22558b1364454de13da1bc2c15c to your computer and use it in GitHub Desktop.
Template de un SP con captura de excepciones
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IF OBJECT_ID ('spa_XXX_ACT_NOMBRE') IS NOT NULL | |
DROP PROCEDURE spa_XXX_ACT_NOMBRE | |
GO | |
CREATE PROCEDURE spa_XXX_ACT_NOMBRE | |
AS | |
/* | |
!IniHeaderDoc | |
***************************************************************************** | |
!NombreObjeto : spa_XXX_ACT_NOMBRE | |
!Sistema : Proyecto | |
!Modulo : Web | |
!Descripcion : Descripción | |
!Plataforma : !BaseDatosSqlServer | |
!Perfil : USOGENERAL | |
!Itinerado : N.A | |
!Uso : N.A | |
!Autor : Cesar Gonzalez | |
!Creacion : DD/MM/YYYY | |
!Retornos/Salidas : N.A | |
!OrigenReq : N.A | |
============================================================================= | |
!Parametros : | |
============================================================================= | |
!Testing : exec spa_XXX_ACT_NOMBRE | |
============================================================================= | |
!ControlCambio | |
-------------- | |
!cVersion !cFecha !cProgramador !cDescripcion | |
----------------------------------------------------------------------------- | |
1.0 DD/MM/YYYY Cesar Gonzalez Creación del objeto | |
***************************************************************************** | |
!EndHeaderDoc | |
*/ | |
BEGIN TRANSACTION transaccion_sp | |
BEGIN | |
SET NOCOUNT ON; | |
BEGIN TRY | |
-- QUERIES | |
COMMIT TRANSACTION transaccion_sp | |
RETURN 0 | |
END TRY | |
BEGIN CATCH | |
-- En caso de error capturo la información | |
-- asociada para almacenar y/o desplegar | |
DECLARE @ErrorMessage NVARCHAR(4000); | |
DECLARE @ErrorSeverity INT; | |
DECLARE @ErrorState INT; | |
DECLARE @ErrorNumber INT; | |
SELECT | |
@ErrorMessage = ERROR_MESSAGE(), | |
@ErrorSeverity = ERROR_SEVERITY(), | |
@ErrorState = ERROR_STATE(), | |
@ErrorNumber = ERROR_NUMBER(); | |
ROLLBACK TRANSACTION transaccion_sp | |
RAISERROR (@ErrorMessage, | |
@ErrorSeverity, | |
@ErrorState); | |
RETURN (@ErrorNumber) | |
END CATCH | |
END |
Se agrega una cabecera para validar la existencia del SP en la base de datos, de manera de evitar conflictos cuando es una actualización de un procedimiento almacenado ya existente
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Template de ejemplo
Este es un TEMPLATE sencillo que se aplica para los 4 verbos (SELECT / UPDATE / DELETE/ UPDATE) para el manejo de datos con SQL Server 2012. aunque la instrucción select no requiere control de transaccion en muchas ocasiones se usan tablas temporales para las cuales es necesario capturar el error en caso que se encuentre con problemas.
Creado por @donpandix