Hi Brian
The one way that I can think of is to change the text field in the syscomments table. But to do this you will have to allow updates directly to the system tables.
You could join the sysobjects an syscomments table like so:
select so.name, sc.text
from syscomments sc, sysobjects so
where so.xtype = 'P'
and so.id = sc.id
You would need a cursor to loop thru all of the procedures and then run a replace(text, '_bak', '') statement on the text column as you loop thru each record. Updating the system tables is not always a good idea.
Or alternatively right click on the database> all tasks> generate sql scrip> choose all stored procs and functions> create and drop option> script object-level permissions.
Once you have the script in query analyser use the find/replace under the edit menu and then replace all the "_bak" with a space. Then execute the script after hours and after a backup and then it will drop and re-create all the procs and functions without the "_bak" and setup all the permissions again.
Either way make sure you backup the database and do this after production hours incase something goes wrong.
Hope this helps
John