Array
(
)

Coleta de dados de um banco de dados Firebird para um banco de dados SQLServer express por linkserver sql

Ronan Teixeira
   - 19 dez 2015

Boa tarde !
Gostaria de uma ajuda com relação a uma coleta de dados.
Tenho um linkserver e preciso de tempo em tempo consulta-lo e salvar os dados acrescentados em uma tabela, isso sendo que seria o ideal que fosse feito como um procedimento que fique rodando "eternamente", em quanto o pc estiver ligado e se possivel iniciar junto com o sqlserver 2014 express.
tentei usar um comando insert into tabela select * from openquery(linkserver, 'select * from tabela') , em um procedimento mais o mesmo não funciona.
as duas tabelas são identicas embora a de inserir não tem campos not null.
desde já agradeço.

Jothaz
   - 19 dez 2015

1-Crie uma stored procedure para fazer o insert;
2-Crie um Job para executar a procedure e
3-Configure o Job para rodar em intervalos de acordo com sua necessidade.

Ronan Teixeira
   - 19 dez 2015

O sqlserver express não da suporte a job's eu acho. Só em versões pagas.

Teria um modelo aí ?

Jothaz
   - 19 dez 2015

Esta tarefa é somente como pesquisa ou é um trabalho para algum cliente?

Sugeri o Job porque você não deixou claro que estava usando SQL Server Express Edition, que por não contar como SQL Agente e impossibilita a criação/automação de Jobs.

Ronan Teixeira
   - 19 dez 2015

Sim eu citei no primeiro post aí em cima que era express . kkk

Só tem essa forma de fazer ?

Na verdade é uma aplicação que estou querendo fazer pra min mesmo. Não é para cliente. Tenho um banco de dados de um programa só que ele gera no formato Firebird não tem como mudar porém gosto de trabalhar com sqlserver.

Ronan Teixeira
   - 19 dez 2015

O express até executa SP tipo insert ,delete, update
O problema mesmo é que consigo fazer a consulta pelo linkserver mais quando trago para SP no startup do server ele não execulta o CMD openquery.

Jothaz
   - 19 dez 2015

Desculpe-me, foi mal não vi a referência ao Express.

Tem anos que não uso o Express então nem me lembro bem de suas restrições.

E não sei dizer o porque deste pau no OpenQuery.

Uso Linked Server com outro banco de dados sem problemas. Firebird usei a muitos anos e achei uma merda, mas é só minha opinião. E sei que algumas vezes não temos escolhas e temos de usar o que temos a disposição.

Para conseguir o que você quer eu vejo dois caminhos:

1-Criar um WindowsService, no caso o C# é a melhor opção que vai rodar nos intervalos definidos e executar a SP para incluir os dados.

2-Ou usar um .bat com o Windows Task Scheduler, que também funciona. Pesquise por "How create job SQL Server Express" que acredito que irá ajudar.

Ou esperemos que outros colaboradores do fórum dêem outras sugestão.

Ronan Teixeira
   - 19 dez 2015

Vou pesquisar sim e obrigado pela dica.

Se der certo vou postar a resolução.

Obrigado.

Marcos P
   - 20 dez 2015


Citação:

2-Ou usar um .bat com o Windows Task Scheduler, que também funciona. Pesquise por "How create job SQL Server Express" que acredito que irá ajudar.


Isso resolve seu problema...