none
multiplas seleções RRS feed

  • Pergunta

  • pessoal,

    tenho uma tabela chamada dividas_mensal essa tabela mensalmente eu preciso fazer cerca de 87 consultas e o resultado dessas consultas. hoje eu faço manualmente, mais gostaria de saber se eu posso fazer um script p fazer os selects que eu preciso e ja salvar os resultados em arquivos direto.


    quinta-feira, 3 de outubro de 2019 19:45

Respostas

Todas as Respostas

  • Djacy,

    Bom, falando sem conhecer o seu ambiente, é possível montar estes Selects e deixar já salvos tanto em um Script, View ou até mesmo Job.

    Em relação a gerar o arquivo, também é possível, seja XML, TXT, XLS, mas estou falando de forma genérica, precisariamos entender melhor.

    As consultas hoje estão salvas aonde?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 3 de outubro de 2019 22:37
  • Deleted
    quinta-feira, 3 de outubro de 2019 23:17
  • hoje eu tenho o sql cru sem nenhuma aplicação eu uso apenas para manipulacao de dados.

    eu senho o seguinte select:

    select cpf,matricula,parcela,contrato,vcto,saldo from tb_base_dividas

    where credor_id = 5401

    eu uso para 87 credor_id ai eu vou alterando o id do credor e as consultas eu salvo como csv. o formato pouco importa desde que eu consiga fazer executar um script que faca as consultas e salve os arquivos todos em uma pasta. 

    sexta-feira, 4 de outubro de 2019 15:26
  • Deleted
    sexta-feira, 4 de outubro de 2019 16:08
  • duvida,

    no codigo 1 eu faco a consulta certo, ai eu ja monto script para todos os credores?

    no codigo 3 eu faço um bat para executar o codigo 1 e salvar no formato ou ele vai deixar os arquivos abertos?

    sexta-feira, 4 de outubro de 2019 18:05
  • Deleted
    • Marcado como Resposta Djacy sexta-feira, 4 de outubro de 2019 21:17
    sexta-feira, 4 de outubro de 2019 20:00
  • SQLState = 08001, NativeError = 2
    Error = [Microsoft][ODBC Driver 11 for SQL Server]Provedor de Pipes Nomeados: Não foi possível abrir uma conexão com o SQL Server [2].
    SQLState = 08001, NativeError = 2
    Error = [Microsoft][ODBC Driver 11 for SQL Server]Erro relatado pela rede ou específico à instância ao estabelecer conexão com o SQL Server. O servidor não foi encontrado ou não está acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. Para obter mais informações, consulte os Manuais Online do SQL Server.
    SQLState = S1T00, NativeError = 0
    Error = [Microsoft][ODBC Driver 11 for SQL Server]O tempo limite do logon expirou
    

    criei uma pasta test dentro do C: e executei o bat de lá e tive esse retorno de erro.

    BCP "EXECUTE dbo.emite_Credor 5514" queryout credor_5514.csv -d BASE_DIVIDAS -T -c -C ACP

    eu preciso por o endereço de pasta do banco?

    sexta-feira, 4 de outubro de 2019 22:22
  • Deleted
    sexta-feira, 4 de outubro de 2019 22:53
  • certo,

    o sql esta na maquina mesmo

    

    o SQL versao:

    Microsoft SQL Server Management Studio 12.0.2269.0
    Ferramentas de Cliente do Microsoft Analysis Services 12.0.2000.8
    Microsoft Data Access Components (MDAC) 10.0.18362.1
    Microsoft MSXML                         3.0 6.0 
    Microsoft Internet Explorer                       9.11.18362.0
    Microsoft .NET Framework                         4.0.30319.42000
    Sistema Operacional                          6.3.18362


    segunda-feira, 7 de outubro de 2019 19:11
  • Djacy,

    O resultado esta apresentando três instâncias do SQL Server rodando na sua máquina, sendo uma delas a edição Express.

    Se o OSQL esta retornando as três instância isso significa que elas estão em execução, pois bem, agora você precisa verificar qual esta utilizando para poder fazer os ajustes nos exemplos postados pelo José Diz.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 7 de outubro de 2019 19:16
  • Deleted
    segunda-feira, 7 de outubro de 2019 19:27
  • consegui um progresso usando o comando com o localhost, impecilio é fazer o logon, como adicionar o o usuario e senha para logon?

    C:\Users\djacy.neto>BCP "EXECUTE dbo.emite_Credor FHE" queryout SIAPE_FHE.csv -S localhost\SQLEXPRESS -d BASE_SIAPE -T -c -C ACP
    SQLState = 37000, NativeError = 4060
    Error = [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Não é possível abrir o banco de dados "BASE_SIAPE" solicitado pelo logon. Falha de logon.
    SQLState = 28000, NativeError = 18456
    Error = [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Falha de logon do usuário 'AKRKPROMOTORA\djacy.neto'.
    

    segunda-feira, 7 de outubro de 2019 20:57
  • Deleted
    segunda-feira, 7 de outubro de 2019 22:20
  • Djacy,

    Tente no comando BCP utilizar o parâmetro -T (Trusted Connection), isso se a instância que você esta utilizando permitir a chamada autenticação mista.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    segunda-feira, 7 de outubro de 2019 22:24

  • 

    O utilitário OSQL costuma retornar informações repetidas. Para mim a resposta apresentada indica uma única instância. A edição express não utiliza o nome padrão de instância.

    Teste inicialmente o seguinte:

      BCP "EXECUTE dbo.emite_Credor 5514" queryout credor_5514.csv -S DSK-AKRK-9822\SQLEXPRESS -d BASE_DIVIDAS -T -c -C ACP

    ou então

      BCP "EXECUTE dbo.emite_Credor 5514" queryout credor_5514.csv -S localhost\SQLEXPRESS -d BASE_DIVIDAS -T -c -C ACP


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    José,

    Acredito que ele não esteja utilizando somente a edição Express, note que temos um resultado apresentado pelo OSQL como (local), provavelmente ele esta utilizando a edição LocalDB em conjunto com algum ambiente de desenvolvimento, algo muito comum no Visual Studio.

    Em relação ao retorno repetido, sinceramente falando nunca me deparei com esta possibilidade.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    segunda-feira, 7 de outubro de 2019 22:28
  • Deleted
    terça-feira, 8 de outubro de 2019 00:33
  • Em relação ao retorno repetido, sinceramente falando nunca me deparei com esta possibilidade.

    Talvez não saiba mas o OSQL pesquisa tanto por named pipes como por TCP/IP; por isso que resultados podem vir repetidos. Já vi isso ocorrer várias vezes. Inclusive há artigos na web que afirmam a mesma coisa: Find SQL Servers On Your Network with OSQL and SQLCMD

     

    Quanto ao (local), não tem relação com LocalDB. Confirmado inclusive no artigo Find All Servers From Local Network.

     

    Quanto à segunda linha do resultado postado por Djacy:
       DSK-AKRK-9822
    talvez até indique uma instância padrão, mas não é certeza.

    Além disso, servidores SQL podem estar escondidos e se o Navegador não estiver ativo a lista retornada também é incompleta. Afora a questão do timeout. Em suma, o retorno do OSQL é sempre uma possibilidade e não uma certeza.



    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    José,

    Ok, obrigado pelas argumentações, sim, eu tenho conhecimento que o OSQL trabalhada também Named Pipes, inclusive o mesmo é uma ferramenta antiga, da época do SQL Server 2000, quando tinhamos disponível também o ISQL, eu particularmente desde 2005 venho utilizando sempre o SQLCMD para este tipo de verificação.

    No que se refere ao LocalDB, ok!

    Em relação as instâncias estaram ocultas ou escondidas, esse é um comportamento que foi adicionado a partir do SQL Server 2016, inclusive opção aplicada ao SQL Server Configuration Manager na parte de Network Configuration, inclusive eu tenho um artigo postado no meu blog que demonstra justamente como utilizar este recurso e o seu comportamento perante ao SQLCMD e ao SQL Server Browser, caso você tenha interesse basta acessar:https://pedrogalvaojunior.wordpress.com/2018/07/26/dica-do-mes-ocultando-uma-instancia-em-execucao-do-microsoft-sql-server/

    Agradeço as observações.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    terça-feira, 8 de outubro de 2019 10:39
  • O Problema que eu estou tendo agora é para conectar ao banco pelo cmd
    quarta-feira, 9 de outubro de 2019 19:24
  • Deleted
    quarta-feira, 9 de outubro de 2019 19:41
  • sim, eu criei um usuario e uma senha para acessar o banco, mais ele da falha ao realizar o logon, depois eu testei com o usuario do windows,

    ja que no banco eu eu deixei a autorizado a autenticação pelo usuario do windows.

    quarta-feira, 9 de outubro de 2019 20:30
  • Deleted
    quarta-feira, 9 de outubro de 2019 21:07
  • Deleted
    quarta-feira, 9 de outubro de 2019 21:47
  • C:\Users\djacy.neto>BCP "EXECUTE dbo.emite_Credor FHE" queryout SIAPE_FHE.csv -S [DSK-AKRK-9822]\SQLEXPRESS -d BASE_SIAPE -T -c -C ACP
    SQLState = 08001, NativeError = -1
    Error = [Microsoft][ODBC Driver 11 for SQL Server]Interfaces de Rede do SQL Server: Erro ao Localizar Servidor/Instância Especificado [xFFFFFFFF].
    SQLState = 08001, NativeError = -1
    Error = [Microsoft][ODBC Driver 11 for SQL Server]Erro relatado pela rede ou específico à instância ao estabelecer conexão com o SQL Server. O servidor não foi encontrado ou não está acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. Para obter mais informações, consulte os Manuais Online do SQL Server.
    SQLState = S1T00, NativeError = 0
    Error = [Microsoft][ODBC Driver 11 for SQL Server]O tempo limite do logon expirou
    
    nao deu, eu parei e estou voltando do zero, estou estudando novamente do zero as configurações do sql server...
    quinta-feira, 10 de outubro de 2019 22:30