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

SQL Server

19/12/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.
Ronan Teixeira

Ronan Teixeira

Curtidas 0

Respostas

Jothaz

Jothaz

19/12/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.
GOSTEI 0
Ronan Teixeira

Ronan Teixeira

19/12/2015

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

Teria um modelo aí ?
GOSTEI 0
Jothaz

Jothaz

19/12/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.
GOSTEI 0
Ronan Teixeira

Ronan Teixeira

19/12/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.
GOSTEI 0
Ronan Teixeira

Ronan Teixeira

19/12/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.
GOSTEI 0
Jothaz

Jothaz

19/12/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.
GOSTEI 0
Ronan Teixeira

Ronan Teixeira

19/12/2015

Vou pesquisar sim e obrigado pela dica.

Se der certo vou postar a resolução.


Obrigado.
GOSTEI 0
Marcos P

Marcos P

19/12/2015


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...
GOSTEI 0
POSTAR