• sp_rename leave unaltered the definition, (see sys.syscomments)

    create procedure My_proc

    as

    select 1 as a

    go

    SELECT * FROM sys.syscomments

    WHERE object_name(id) = 'My_proc'

    go

    exec sp_rename My_proc,Myproc

    SELECT * FROM sys.syscomments

    WHERE object_name(id) = 'Myproc'

    After the rename the definition in the columnn "text" is unaltered.

    The only advantage of sp_rename instead of "drop and re-create" is that you shouldn't reassign permissions on procedure.