What severity are you using? You can try something like this (I made a stored procedure, but you can just type in the code everywhere you want to use it..)/*CREATE PROCEDURE dbo.usp_PrimaryKeyErrorHandlerASBEGIN DECLARE @Error_Number int, @Error_Severity int, @Error_State int, @Error_Procedure varchar(1000), @Error_Line int, @Error_Message varchar(8000) SELECT @Error_Number = ERROR_NUMBER(), @Error_Severity = ERROR_SEVERITY(), @Error_State = ERROR_STATE(), @Error_Procedure = ERROR_PROCEDURE(), @Error_Line = ERROR_LINE(), @Error_Message = ERROR_MESSAGE() --Handle errors IF @Error_Number = 2627 --Primary key violation, return error to client BEGIN RAISERROR(@Error_Message,@Error_Severity, @Error_State) END ELSE --just return error to the app nicely if you want to do something with it BEGIN SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage; ENDEND*/SET NOCOUNT ONBEGIN TRY SELECT 1/0END TRYBEGIN CATCH Exec usp_PrimaryKeyErrorHandlerEND CATCHBEGIN TRY Create Table #Temp (id int primary key) Insert Into #Temp (id) Values(1) Insert Into #Temp (id) Values(1) END TRYBEGIN CATCH Exec usp_PrimaryKeyErrorHandler Drop Table #TempEND CATCH