Carregando ...
Desculpe, ocorreu um erro ao carregar o conteúdo.

33238Re: RES: [mssql-l] criar store pro cedures em vários bancos diferentes

Expandir mensagens
  • Andre Luiz Reis Marques
    12 de jan 14h08min
    Pessoal,

    So uma dica.  utilizem o comando SQLCMD, pois o OSQL vai ser retirado nas futuras versoes.



     
    SQLCMD


    Atenciosamente,
    André Luiz R. Marques
    Administrador de Banco de Dados - SQL Server/Oracle

     
    Evite imprimir. Colabore com o Meio Ambiente!
     
    "Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode
    começar agora e fazer um novo fim."
                   Chico Xavier



    Em Quinta-feira, 12 de Janeiro de 2017 19:32, "'Wolney Marconi Maia' wolney@... [mssql-l]" <mssql-l@...> escreveu:


     
    Ola Lucas,
     
    Segue meus comentários
     
    a)      O retorno do comando é uma série de números sequenciais (1<. 2>, 3>....) . Estes números indicam as linhas processadas de cada Sp/trigger criada?
     
    Quando se tem uma saída de comandos de uma instrução via command line para um arquivo (no caso –o c:\dbname.log ) , essa numeração é feita SO é indica a linhas processadas pelo comando e não do conteúdo do script.
     
    Veja se o parâmetro –n de ajuda
     
    b)      Existe alguma forma de interromper o script se ocorrer algum erro? Nos testes que fiz, quando acontece um erro o script segue criando as outras SP’s  e isso dificulta identificar em qual Store Procedure aconteceu o erro.
     
    Talvez o paramentro  –b, mas acho que tem que testar
     
    c)       Para facilitar, gostaria de executar o OSQL de dentro do Management Studio. Pensei em utilizar o xp_cmdshell , porém este é um dos comandos que a LocaWeb não permite a execução. Você tem alguma outra sugestão que permita isso ?
     
    Falando bem superficial, já que não tenho como testar agora ( já estou indo para casa) :  PowerShell, mas tem que ver se na LocalWeb permite. Veja que dentro do Management Studio vc consegue iniciar o OS!!!
     
     
    Detalhes em
     
     
     
     
    Wolney Marconi Maia
    http://imagem.imprensaoficial.com.br/mailing/email_spacer.pngRede e Infraestrutura - TI
    http://imagem.imprensaoficial.com.br/mailing/email_spacer.png11-2799-9892

    Só imprima se realmente for necessário, pense em sua responsabilidade com o meio ambiente.O conteúdo desse e-mail ou de seus anexos é confidencial e restrito ao destinatário da mensagem.Se, por engano, você recebeu esse e-mail, por favor, notifique o remetente, não faça cópias nem distribua seu conteúdo.
     
     
    De: mssql-l@... [mailto:mssql-l@...]
    Enviada em: quarta-feira, 11 de janeiro de 2017 12:30
    Para: mssql-l@...
    Assunto: RES: [mssql-l] criar store procedures em vários bancos diferentes
     
     
    Olá Wolney.
     
    A)     Os banco de dados fazem parte da mesma instancia SQL
    B)      No meu sript eu sempre drop e recrio a store procedure
    C)      Os objetos já tem permissão de acesso por contas do SQL server. 
    Sua ideia foi PERFEITA!! 
    Eu tenho um agravante, pois meus bancos estão em um servidor da LocaWeb , onde tenho uma série de restrições em relações a comandos posso executar, mas a principio,  parece que consigo executar comandos  OSQL. Vou fazer  mais alguns testes  nas bases verdadeiras para me certificar disso.
     
    Fiquei somente com algumas dúvida:
    a)      O retorno do comando é uma série de números sequenciais (1<. 2>, 3>....) . Estes números indicam as linhas processadas de cada Sp/trigger criada?
    b)      Existe alguma forma de interromper o script se ocorrer algum erro? Nos testes que fiz, quando acontece um erro o script segue criando as outras SP’s  e isso dificulta identificar em qual Store Procedure aconteceu o erro.
    c)       Para facilitar, gostaria de executar o OSQL de dentro do Management Studio. Pensei em utilizar o xp_cmdshell , porém este é um dos comandos que a LocaWeb não permite a execução. Você tem alguma outra sugestão que permita isso ?
    Mais um vez obrigado pela ajuda, resolveu 90% de meu problema.
     
    Abraços
     
    Lucas Moraes
    Gerente de Projetos
    (27) 9-9961-8200 (Tim)
    (27) 3345-7094
     
    cid:image002.jpg@01D03985.805593B0
     
    De: mssql-l@... [mailto:mssql-l@...]
    Enviada em: terça-feira, 10 de janeiro de 2017 10:15
    Para: mssql-l@...
    Assunto: RES: [mssql-l] criar store procedures em vários bancos diferentes
     
     
    Olá Lucas, bom dia.
     
    Sim, existe uma forma ( ou varias formas ) de se fazer isso.
    Mas antes tenho algumas dúvidas.
     
    1.       Esses banco de dados estão em instâncias diferentes ou todos os banco na mesma instância?
    2.       Esses objetos que você deseja criar, pode ocorrer deles já existirem nos bancos de dados destinos.
    3.       Se sim, esses objetos já devem ter permissões de acesso por contas do SQL Server ou Windows, correto?
     
    Voce pode usar o comando OSQL pela linha de comando.  Exemplo:
     
    OSQL –S DBServer  –E  -d DBName –i c:\script.sql –o\DBname
    wh.log
     
    Para maiores detalhes do comando
     
    OSQL /?
     
    Como você tem 30 banco de dados ( e tem o nome deles a instância que eles estão ), o que sugiro é gerar um arquivo de lote com a execução do comando OSQL para cada banco.
    Se você tem os banco de dentro de um única instância, pode gerar o OSQL pelo comando abaixo :
     
    select 'OSQL –S DBServer  –E  -d '+name+' –i c:\script.sql –o\'+name+'.log ' 
    from sys.databases
    where name not in ('master','model','msdb','tempdb')
     
    Outro pontos a observar:
     
    1.       Os objetos dentro  do script deve estar separados pelo instrução GO
    2.       Voce deve tomar o cuidado de verificar se o objeto não existe no banco de dados. Se você dropar o objeto e criar novamente, as permissões de acesso concedido ao objetos deverão ser refeitas.
     
     
    Acho que é isso!!
     
    Wolney Marconi Maia
    http://imagem.imprensaoficial.com.br/mailing/email_spacer.png
    Rede e Infraestrutura - TI
    http://imagem.imprensaoficial.com.br/mailing/email_spacer.png11-2799-9892

    Só imprima se realmente for necessário, pense em sua responsabilidade com o meio ambiente.O conteúdo desse e-mail ou de seus anexos é confidencial e restrito ao destinatário da mensagem.Se, por engano, você recebeu esse e-mail, por favor, notifique o remetente, não faça cópias nem distribua seu conteúdo.
     
     
    De: mssql-l@... [mailto:mssql-l@...]
    Enviada em: segunda-feira, 9 de janeiro de 2017 16:03
    Para: mssql-l@...
    Assunto: RES: [mssql-l] criar store procedures em vários bancos diferentes
     
     
    Este grupo ainda esta ativo??
     
    Lucas Moraes
    Gerente de Projetos
    (27) 9-9961-8200 (Tim)
    (27) 3345-7094
     
    cid:image002.jpg@01D03985.805593B0
     
    De: mssql-l@... [mailto:mssql-l@...]
    Enviada em: quarta-feira, 4 de janeiro de 2017 17:56
    Para: mssql-l@...
    Assunto: [mssql-l] criar store procedures em vários bancos diferentes
     
     
    Boa Tarde Pessoal,
     
      Tenho um arquivo geral com todas as store procedures e trigger que utilizo no banco de dados,  porém, agora necessito criar estas mesmas store procedures em vários bancos diferentes (mais de 30 bancos).
     
      Alguém tem alguma dica de como fazer para rodar este arquivo e criar as SP em todos os bancos sem ter que sair alterando o banco um a um?
     
    Atenciosamente
     
    Lucas Moraes
    Gerente de Projetos
    (27) 9-9961-8200 (Tim)
    (27) 3345-7094
     
    cid:image002.jpg@01D03985.805593B0
     


  • Mostrar todas as 6 mensagens neste tópico