Sometimes the default error messages returned by SQL Server are confusing at best, and completely misleading at worst. If dynamic SQL is introduced into the mix, the picture can get murkier and murkier. The project plan rarely allows time for developing a robust approach to error handling, and attempts by developers to introduce a modicum of consistency are often rebuffed by the complexities involved. This session will peep under the bonnet at some of the considerations to take into account when planning your error handling within your application's stored procedures. Topics covered will include TRY ... CATCH blocks, transactions, throwing errors and making your error messages informative and useful.