Recuperar programaticamente a fonte do procedimento armazenado do SQL Server que é idêntica à fonte retornada pela GUI do SQL Server Management Studio?

Alguma dica sobre como eu posso obter programaticamente exatamente a origem idêntica do procedimento armazenado do SQL Server 2005, como quando clico com o botão direito do mouse nesse procedimento armazenado no SQL Server Management Studio e seleciono Modificar?

Estou tentando usar o SMO, mas existem algumas diferenças de texto. O procedimento sempre tem CREATE, não ALTER, e há algumas diferenças no cabeçalho, como GOs ausentes na versão que estou recebendo programaticamente. Eu posso consertar isso, mas talvez haja uma maneira melhor?

Mais uma vez, estou no SQL Server 2005, usando o SMSE. Usando o SMO via Visual Studio 8 2008.

Atualizar: Obteve algumas respostas que informam o básico de como recuperar o procedimento armazenado. O que estou procurando é recuperar o texto idêntico (ou quase idêntico) ao que a GUI gera.

Exemplo: para sp_mysp, clique com o botão direito do mouse em Management Studio, selecione modificar. Isso gera:

    USE [MY_DB]  
    GO  
    /****** Object:  StoredProcedure [dbo].[sp_mysp]    Script Date: 01/21/2009 17:43:18 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    -- =============================================
    -- Author:      
    -- Create date: 
    -- Description: 
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_mysp]

Eu gostaria de obter programaticamente a mesma coisa (observe os GOs no cabeçalho e o fato de ser um ALTER PROCEDURE. Idealmente, eu gostaria de obter isso com o mínimo de correção programática da fonte recuperada.

Ficaria feliz em obter apenas algo que diferisse nos detalhes da data do script. . .

questionAnswers(8)

yourAnswerToTheQuestion