EXEC sp_helptext 'your procedure name';
Isso evita o problema com a abordagem INFORMATION_SCHEMA em que o procedimento armazenado é interrompido se for muito longo.
Atualização:David escreve que isso não é idêntico ao seu sproc... talvez porque ele retorna as linhas como 'registros' para preservar a formatação? Se você quiser ver os resultados em um formato mais 'natural', você pode usar Ctrl-T primeiro (saída como texto) e deve imprimi-lo exatamente como você digitou. Se você estiver fazendo isso em código, é trivial fazer um foreach para reunir seus resultados exatamente da mesma maneira.
Atualização 2:Isso fornecerá à fonte um "CREATE PROCEDURE" em vez de um "ALTER PROCEDURE", mas não conheço nenhuma maneira de fazê-lo usar "ALTER". Uma coisa meio trivial, porém, não é?
Atualização 3:veja os comentários para obter mais informações sobre como manter seu SQL DDL (estrutura de banco de dados) em um sistema de controle de origem. Essa é realmente a chave para esta pergunta.