• I think if you use RAISERROR WITH LOG in your production stored procedures, users executing the procedure that aren't members of the sysadmin role will cause the procedure to fail so this is a limitation of its use in this scenario.  You can get round this by using a debug or trace bit parameter and only calling RAISERROR if this parameter is set to 1.  This may not always be possible in a production environment unless you are able to change the client calling code to switch the trace on/off.