devxlogo

Make RAISERROR Your Last Command in Stored Procedures or Triggers

If you execute a SQL statement in a stored procedure after your use the RAISERROR command, you will clear @@ERROR. This is true even if you use a RETURN and return a non-zero value in the stored procedures.For example:

 DECLARE @intReturn int     , @vcErrorMessage varchar(255)     , @BeginTransCount intSELECT @BeginTransCount = @@TRANCOUNT -- line above is needed if transaction processing-- run some SQL commandIF @@error <> 0BEGIN     SELECT @intReturn = -1          , @vcErrorMessage = "An error occurred performing some operation."     GOTO errorEND-- more code...error:IF @intReturn IS NULLBEGIN     IF @@TRANCOUNT > @BeginTransCount COMMIT  TRANSACTIONENDELSEBEGIN     IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION     RAISERROR ( @vcErrorMessage, 16, 1)ENDGO

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Five Early Architecture Decisions That Quietly Get Expensive

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.