When writing SQL procedures, it is really important to handle errors cautiously. Having that in mind will probably save your efforts, time and money. I have been working with MS-SQL 2000 and MS-SQL 2005 (I have not got the opportunity to work with MS-SQL 2008 yet) for many years now and I want to share with you how I handle errors in T-SQL Stored Procedure. This code has been working for many years now without a hitch.
N.B.: As another "best pratice", I suggest using only ONE level of
CATCH and only ONE level of
TRANSACTION encapsulation, as doing otherwise may not be 100% sure.
END TRY BEGIN CATCH
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int;
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY();
RAISERROR(@ErrMsg, @ErrSeverity, 1);
In conclusion, I will just mention that I have been using this code with .NET 2.0 and .NET 3.5 and it works like a charm. The .NET TDS parser throws back a
SQLException which is ideal to work with.
Original post URL: http://sp.nitriques.com/sites/blog/Lists/Posts/Post.aspx?ID=15
Published: 5/7/2009 11:22 PM