• The "best method" depends on how you want to do it.  Assuming you want to do it via T-SQL, then maybe something like below (I've omitted any error/missing object checking):

    DECLARE @current_proc_name nvarchar(100);

    DECLARE @new_proc_name nvarchar(100);

    DECLARE @proc_source nvarchar(max);

    SET @current_proc_name = 'proc1';

    SET @new_proc_name = 'proc1_new';

    SELECT @proc_source = OBJECT_DEFINITION(OBJECT_ID(@current_proc_name));

    SET @proc_source = STUFF(@proc_source, CHARINDEX(@current_proc_name, @proc_source), LEN(@current_proc_name), @new_proc_name);

    IF CHARINDEX('ALTER', @proc_source) > 0 AND

    CHARINDEX('ALTER', @proc_source) < CHARINDEX('SOURCE', @proc_source)

    BEGIN

    SET @proc_source = STUFF(@proc_source, CHARINDEX('ALTER', @proc_source), 5, 'CREATE')

    END /*IF*/

    SELECT @proc_source;

    EXEC(@proc_source);

    SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".