Cómo manejar los ERRORES en SQL

Dec 29, 2022 | SQL 2017, SQL 2019, SQL 2022, SQL Server, TSQL | 0 comments

Manejar de forma correcta los errores dentro de tu código TSQL es muy importante para que tu aplicación funcione de forma adecuada.

En el siguiente video te voy a mostrar cual es la forma correcta de hacerlo

USE TEMPDB
GO
CREATE OR ALTER PROC USP_ERROR0
AS

 CREATE TABLE #DEMO (VALOR INT)
	   
 BEGIN TRAN;
   INSERT INTO #DEMO
   SELECT 1/0 AS CAUSEANERROR

   PRINT 'HOLA'

 COMMIT;

 SELECT * FROM #DEMO 
GO

exec USP_ERROR0

CREATE OR ALTER PROC USP_ERROR1
AS
 CREATE TABLE #DEMO (VALOR INT)

BEGIN TRY--DETECT ERRORS
 BEGIN TRAN;
  INSERT INTO #DEMO
  SELECT 1/0 AS CAUSEANERROR

  PRINT 'HOLA'
 COMMIT;
END TRY

BEGIN CATCH
  IF @@TRANCOUNT> 0 ROLLBACK; --CLEANUP AFTER ERROR
  THROW;
END CATCH
GO

CREATE OR ALTER PROC USP_ERROR3
AS
--STRUCTURED ERROR HANDLING EXAMPLE
	   
BEGIN TRY--DETECT ERRORS
 BEGIN TRAN;
   SELECT 1/0 AS CAUSEANERROR;
 COMMIT;
END TRY

BEGIN CATCH
 IF @@TRANCOUNT> 0 ROLLBACK; --CLEANUP AFTER ERROR
  
  THROW 50001, 'ERROR EN INSERTAR DATO', 1; -- CUSTOM
END CATCH
GO

Acerca del autor

Maximiliano Accotto

Con mas de 20 años de experiencia y trayectoria trabajando con bases de datos SQL Server y BI.

Fui Microsoft MVP desde el 2005 al 2019 y soy orador frecuente para distintos eventos de Microsoft y comunidades técnicas.

Me especializado en temas de tuning, administración, performance, diseño y BI en el mundo Microsoft ya sea para ambientes locales como nube.

 

Asesoramiento

¿Necesitas resolver problemas de SQL Server o Micosoft BI?

De ser así te puedo ayudar con mi asesoramiento totalmente personalizado

0 Comments