Usuário com melhor resposta
multiplas seleções

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.
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]
-
-
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.
-
-
-
-
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?
-
-
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
-
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]
-
-
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'.
-
-
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]
- Editado Junior Galvão - MVPMVP segunda-feira, 7 de outubro de 2019 22:25
-
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]
- Editado Junior Galvão - MVPMVP segunda-feira, 7 de outubro de 2019 22:28
-
-
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]
- Editado Junior Galvão - MVPMVP terça-feira, 8 de outubro de 2019 10:40
-
-
-
-
-
-
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...