none
É possível criar procedure com procedure ? RRS feed

  • Pergunta

  • Boa tarde,

    Estou com um problema, preciso duplicar uma base de dados alterando o nome dela, mas tenho varias procedures, e se alterar o nome da base teria que alterar o nome da base em todas as procedures, teria como fazer uma procedure que eu passe uma variável com o nome da nova base de dados e gere todas as procedures substituindo o nome da base nova ?

    sexta-feira, 12 de setembro de 2014 15:42

Respostas

  • RSO17,

    Você não tem necessidade de alterar o nome das procedures ao criar um novo banco de dados, duplicado ou não.

    Alterar o nome das procedures pode até gerar problemas para sua equipe de desenvolvimento de softwares.

    Então duplique seu banco de dados (restaurando um backup ou gerando por scripts T-SQL), renomeando este novo banco com outro nome. Quando você precisar consultar dados do banco original ou do duplicado, basta incluir o nome do banco no comando EXEC. 

    Veja um exemplo abaixo:

    USE SeuBancoCopia
    GO
    
    --EXECUTANDO PROCEDURE NO BANCO COPIADO 
    EXEC PR_SUAPROCEDURE;
    GO
    
    --EXECUTANDO A PROCEDURE NO BANCO ORIGINAL, 
    EXEC SeuBancoOriginal.dbo.PR_SUAPROCEDURE
    GO


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 12 de setembro de 2014 16:27
    Moderador

Todas as Respostas

  • RSO17,

    Você não tem necessidade de alterar o nome das procedures ao criar um novo banco de dados, duplicado ou não.

    Alterar o nome das procedures pode até gerar problemas para sua equipe de desenvolvimento de softwares.

    Então duplique seu banco de dados (restaurando um backup ou gerando por scripts T-SQL), renomeando este novo banco com outro nome. Quando você precisar consultar dados do banco original ou do duplicado, basta incluir o nome do banco no comando EXEC. 

    Veja um exemplo abaixo:

    USE SeuBancoCopia
    GO
    
    --EXECUTANDO PROCEDURE NO BANCO COPIADO 
    EXEC PR_SUAPROCEDURE;
    GO
    
    --EXECUTANDO A PROCEDURE NO BANCO ORIGINAL, 
    EXEC SeuBancoOriginal.dbo.PR_SUAPROCEDURE
    GO


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 12 de setembro de 2014 16:27
    Moderador
  • RSO17,

    Concordo com o Durval, além disso, você terá os ambientes separados e mais organizados o que poderá ser muito útil para você e sua equipe em atividades administrativas.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    sexta-feira, 12 de setembro de 2014 19:05