¿Recuperar mediante programación el origen del procedimiento almacenado de SQL Server que es idéntico al origen devuelto por la interfaz gráfica de usuario de SQL Server Management Studio?

¿Alguna sugerencia sobre cómo puedo obtener programáticamente exactamente el mismo origen de procedimiento almacenado de SQL Server 2005, como cuando hago clic derecho en ese procedimiento almacenado en SQL Server Management Studio y selecciono modificar?

Estoy intentando usar SMO, pero hay algunas diferencias textuales. El procedimiento siempre tiene CREATE, no ALTER, y hay algunas diferencias en el encabezado, como la falta de GO en la versión que obtengo mediante programación. Puedo arreglar esto, pero ¿tal vez hay una mejor manera?

Nuevamente, estoy en SQL Server 2005, usando SMSE. Usando SMO a través de Visual Studio 8 2008.

Actualizar: Obtuve algunas respuestas que explican los conceptos básicos de cómo recuperar el procedimiento almacenado. Lo que estoy buscando es recuperar el texto idéntico (o casi idéntico) a lo que genera la GUI.

Ejemplo: para sp_mysp, haga clic con el botón derecho en Management Studio, seleccione modificar. Esto genera:

    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]

Me gustaría obtener programáticamente lo mismo (observe los GO en el encabezado y el hecho de que es un PROCEDIMIENTO DE ALTERACIÓN. Idealmente, me gustaría obtener esto con una reparación programática mínima de la fuente recuperada.

Me encantaría obtener solo algo que difiera en los detalles de la Fecha del script. . .

Respuestas a la pregunta(8)

Su respuesta a la pregunta