Clique com o botão direito no SP sob o DB e clique em Script Stored Procedure As > CRIAR Para > Arquivo, ele criará um arquivo de script SQL e executará esse script no outro banco de dados.
Estou usando o SQL Server 2008 e gostaria de copiar procedimentos armazenados de um banco de dados para outro. Como?
Basta usar o Management Studio para gerar um script para os procedimentos armazenados, salvar o script em um arquivo e executá-lo no outro SQL Server.
Da memória, clique com o botão direito do mouse no banco de dados e, em Todas as Tarefas, Gere Scripts ou algo parecido. Isso produzirá o Transact-SQL para criar o que você selecionar.
JR
Aqui está uma consulta (definir saída para texto) para retornar os procedimentos armazenados:
SELECT ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE'
Existem opções no SSMS para também gerar permissões para os usuários - isso é útil.
Ferramentas > opções > scripting
Você também pode criar vários scripts clicando em 'procedimentos armazenados' no painel Explorador de Objetos e depois selecionando procedimentos na janela Detalhes do Pesquisador de Objetos. Clique com o botão direito nos procedimentos selecionados e você está pronto para ir.
Eu prefiro o SQL Compare do redgate.
As respostas acima são boas e funcionam. A questão é (no meu mundo, de qualquer forma): onde estão seus sprocs?
No meu caso, temos um kit de sprocs no db do aplicativo (lógica de negócios, etc.) e outro conjunto de sprocs de gerenciamento do sistema no master.
O kicker para mim é ter que mover (e manter em sincronia) os sprocs no master ....
Você pode copiar todo o banco de dados, incluindo Stored Prcedures, talvez seja o que você precisa:
Em Ms SQL Server Managment studio - > Clique com o botão direito na base de dados de origem, vá para o menu "Tasks" e selecione "Copy Database".
Isso criará uma cópia completa da fonte, incluindo tabelas, dados e Precedências Armazenadas.
@Ash Machine tem uma boa ideia, mas ele usa a consulta errada, o que limita o resultado retornado para nvarchar (4000).
Use em vez disso
Select definition from sys.sql_modules where object_id = object_id('<procname>')
e você obtém a definição completa não-truncada.
Na maioria dos casos práticos, isso funciona nas GUIs, como SSMS, quando você usa saída para texto e configura a coluna máxima de caracteres pro para 8192. Se algumas linhas forem mais largas que 8192, isso falhará. Mas note que isso é uma limitação da ferramenta de consulta e não da consulta. Essa limitação também entrou no SQLServer 2012.
Usando o ADO.NET, talvez por meio do PowerShell, como em SQLPSX sqlise , você pode obter a definição completa.
Se você quiser apenas armazenar backups da definição do procedimento em alguma tabela do mesmo banco de dados, ele também funciona
Tags sql-server scripting