none
Ajuda com JOB RRS feed

  • Pergunta

  • Boa tarde,

    Preciso criar no SQL um job que faça o seguinte:

    1) Execute uma procedure (que está em outro servidor via linked) diariamente às 23:00 horas;

    2) Pegue o retorno e formate;

    3) Insira esses valores em uma tabela local.

    Poderiam me dar uma ajuda?

    Obrigado!



    segunda-feira, 17 de junho de 2013 18:15

Respostas

  • Marcelo,

    O agendamento do job pode ser feito pelo SQL Server agent caso sua versão do SQL Server seja igual ou superior a standard ou via Bat file + Windows Scheduler caso seja express. Para como agendar um job veja este link: http://fabrizziocaputo.wordpress.com/2011/09/01/sql-server-basico-4-agendando-um-job-no-sql-server/

    Sobre o script, voce teria algo mais ou menos assim:

    --Cria tabela local
    CREATE TABLE #SuaTabelaTemporariaLocal
    (
    	N1	DataType,
    	N2	DataType,
    	...
    	Nx	DataType
    )
    
    --Insere dados executando procedure remota
    INSERT INTO #SuaTabelaTemporariaLocal EXEC LinkedServer.BaseRemota.dbo.Procedure
    
    --Faz transformações necessarias
    UPDATE #SuaTabelaTemporariaLocal
    SET N1 = N1 + 5
    
    UPDATE #SuaTabelaTemporariaLocal
    SET N2 = N3 + 1
    
    --Salva na tabela local final
    INSERT INTO TabelaFinalLocal
    SELECT N1, N2, ..., Nx
    FROM #SuaTabelaTemporariaLocal


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta MarceloSchneider terça-feira, 18 de junho de 2013 18:10
    terça-feira, 18 de junho de 2013 11:50
    Moderador

Todas as Respostas

  • Marcelo,

    O agendamento do job pode ser feito pelo SQL Server agent caso sua versão do SQL Server seja igual ou superior a standard ou via Bat file + Windows Scheduler caso seja express. Para como agendar um job veja este link: http://fabrizziocaputo.wordpress.com/2011/09/01/sql-server-basico-4-agendando-um-job-no-sql-server/

    Sobre o script, voce teria algo mais ou menos assim:

    --Cria tabela local
    CREATE TABLE #SuaTabelaTemporariaLocal
    (
    	N1	DataType,
    	N2	DataType,
    	...
    	Nx	DataType
    )
    
    --Insere dados executando procedure remota
    INSERT INTO #SuaTabelaTemporariaLocal EXEC LinkedServer.BaseRemota.dbo.Procedure
    
    --Faz transformações necessarias
    UPDATE #SuaTabelaTemporariaLocal
    SET N1 = N1 + 5
    
    UPDATE #SuaTabelaTemporariaLocal
    SET N2 = N3 + 1
    
    --Salva na tabela local final
    INSERT INTO TabelaFinalLocal
    SELECT N1, N2, ..., Nx
    FROM #SuaTabelaTemporariaLocal


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    • Marcado como Resposta MarceloSchneider terça-feira, 18 de junho de 2013 18:10
    terça-feira, 18 de junho de 2013 11:50
    Moderador
  • Obrigado Fabrizzio!
    terça-feira, 18 de junho de 2013 18:10