none
Agendar Procedure RRS feed

  • Pergunta

  • Não estou conseguindo agendar minha procedure. Criei uma procedure que executa um filtro em uma tabela local e exporta para outra tabela em outro servidor (locaweb). A procedure esta funcionando perfeitamente, mas não consigo agendar, da fala de autenticação. Eu dou o Exec Proc_Efetivo e funciona perfeitamente na minha query, mas não consigo agendar..Como resolver isso ?
    Obs: Eu tenho um Linked Server nesses 2 servidores.
    Segue abaixo minha procedure:
    DELETE FROM [201.76.55.9].isotec_eng.dbo.SE_EFETIVOE
    INSERT INTO [201.76.55.9].isotec_eng.dbo.SE_EFETIVOE
    (
    FUNCAO,NOME,SETOR,CC,DATA_DP,USERNAME
    )
    SELECT SRJ010.RJ_DESC,SRA010.RA_NOME,
    CASE WHEN SRA010.RA_SGOSETO = '1' THEN 'DIREÇÃO/CONST'
    WHEN SRA010.RA_SGOSETO = '2' THEN 'PLANEJ' WHEN SRA010.RA_SGOSETO = '3' THEN 'ADMIN' WHEN SRA010.RA_SGOSETO = '4' THEN 'SEG/MED'
    WHEN SRA010.RA_SGOSETO = '5' THEN 'CQ' WHEN SRA010.RA_SGOSETO = '6' THEN 'EQUIPAM' WHEN SRA010.RA_SGOSETO = '7' THEN 'ELETR'
    WHEN SRA010.RA_SGOSETO = '8' THEN 'PIPE SHOP' WHEN SRA010.RA_SGOSETO = '9' THEN 'TUB.CAMPO' WHEN SRA010.RA_SGOSETO = '10' THEN 'INSTRUM'
    WHEN SRA010.RA_SGOSETO = '11' THEN 'ESTRUT' WHEN SRA010.RA_SGOSETO = '12' THEN 'PINTURA' WHEN SRA010.RA_SGOSETO = '13' THEN 'ISOLAM'
    WHEN SRA010.RA_SGOSETO = '' THEN 'MATRIZ' WHEN SRA010.RA_SGOSETO = '14' THEN 'ALMOXAR' WHEN SRA010.RA_SGOSETO = '15' THEN 'CIVIL'
    WHEN SRA010.RA_SGOSETO = '16' THEN 'PRODUÇÃO'
    END AS SETOR,LEFT(SRA010.RA_CC,3),GETDATE() AS DATA_DP,'READER'
    FROM DADOSADV.dbo.SRA010
    INNER JOIN DADOSADV.dbo.SRJ010 ON SRA010.RA_CODFUNC = SRJ010.RJ_FUNCAO
    WHERE (SRA010.RA_SITFOLH = '') AND (SRA010.D_E_L_E_T_ <> '*') AND
    ((SRA010.RA_REFCTA = '2' AND ((SRJ010.RJ_DESC LIKE 'ASSIST%') OR (SRJ010.RJ_DESC LIKE 'ENC %')
    OR (SRJ010.RJ_DESC LIKE 'DIR%') OR (SRJ010.RJ_DESC LIKE 'INSP%') OR (SRJ010.RJ_DESC LIKE 'MESTRE%')))
    OR (SRA010.RA_REFCTA IN ('1','3') AND SRJ010.RJ_FUNCAO <> '6159'))
    ORDER BY SRA010.RA_REFCTA,SRJ010.RJ_DESC

    quarta-feira, 22 de outubro de 2008 17:53

Respostas

  • Estranho aqui nunca tive problema com isso aqui tente colocar com o Master

     SELECT * FROM [201.76.55.9].Master.dbo.SE_EFETIVOE

     

    mas vou pesquisar aqui para ver se acho algo.

     

    Att.

     

     

    quarta-feira, 22 de outubro de 2008 18:37

Todas as Respostas

  • Boa Tarde,

     

    Se você consegue executar quando você agente o JOB ela não roda, há algumas possibilidades

     

    - Local Incorreto do JOB: O banco de dados onde o JOB roda está errado

    - Permissões: A conta do SQL Server Agent não é de domínio ou não tem as permissões necessárias no outro servidor:

     

    [ ]s,

     

    Gustavo

     

    quarta-feira, 22 de outubro de 2008 18:01
  • O banco que esta o Job é o DADOSADV..banco o qual esta no meu Job, crei que isso não seja.
    Ja tentei diversas contas, mas nenhum não funciona, mas creio que seja permissoes necessarias em outro servidor, mas se for isso, poque eu consigo rodar essa procedure no meu Query Analyzer ?
    Obrigado pel ajuda
    quarta-feira, 22 de outubro de 2008 18:07
  • Tente Colocar assim --> exec [saows1001].master.dbo.sp_email_transportation

                                        exec [SERVIDOR].master.OWNER.sp_email_transportation

     

     

     

    segue o codigo de um JOB abaixo:

    USE [msdb]

    GO

    /****** Object: Job [Email de email - Transportation] Script Date: 10/22/2008 16:14:36 ******/

    BEGIN TRANSACTION

    DECLARE @ReturnCode INT

    SELECT @ReturnCode = 0

    /****** Object: JobCategory [Web Assistant] Script Date: 10/22/2008 16:14:36 ******/

    IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Web Assistant' AND category_class=1)

    BEGIN

    EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Web Assistant'

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    END

    DECLARE @jobId BINARY(16)

    EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Email de email - Transportation',

    @enabled=0,

    @notify_level_eventlog=2,

    @notify_level_email=0,

    @notify_level_netsend=0,

    @notify_level_page=0,

    @delete_level=0,

    @description=N'Envio de relatorio aos aprovadores das requisicoes de transportation.',

    @category_name=N'Web Assistant',

    @owner_login_name=N'sa', @job_id = @jobId OUTPUT

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    /****** Object: Step [Envio de email] Script Date: 10/22/2008 16:14:36 ******/

    EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Envio de email',

    @step_id=1,

    @cmdexec_success_code=0,

    @on_success_action=1,

    @on_success_step_id=0,

    @on_fail_action=2,

    @on_fail_step_id=0,

    @retry_attempts=0,

    @retry_interval=1,

    @os_run_priority=0, @subsystem=N'TSQL',

    @command=N'exec [saows1001].master.dbo.sp_email_transportation',

    @database_name=N'master',

    @flags=0

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'1 vez na semana - Segunda feira',

    @enabled=1,

    @freq_type=8,

    @freq_interval=2,

    @freq_subday_type=1,

    @freq_subday_interval=0,

    @freq_relative_interval=0,

    @freq_recurrence_factor=1,

    @active_start_date=20060912,

    @active_end_date=99991231,

    @active_start_time=100000,

    @active_end_time=235959

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    COMMIT TRANSACTION

    GOTO EndSave

    QuitWithRollback:

    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION

    EndSave:

     

    Att Baranauskas!

    quarta-feira, 22 de outubro de 2008 18:13
  • Desculpa mas não entendi. o que tem a ver a exec de sua procedure com a minha:

    exec [saows1001].master.dbo.sp_email_transportation

    exec [SERVIDOR].master.OWNER.sp_email_transportation


    Eu ja tenha os dados do extreno na minha procedure conforme esta cima, tem como vc me explicar, não entendi.



    quarta-feira, 22 de outubro de 2008 18:22
  •  

    So coloquei o exemplo para mostrar que tem que por o caminho do servidor -->

     exec [saows1001].master.dbo.sp_email_transportation  no caso a procedure é a que está de vermelho!

    quarta-feira, 22 de outubro de 2008 18:26
  • Tentei agendar assim:
    SELECT * FROM [201.76.55.9].isotec_eng.dbo.SE_EFETIVOE

    Nem assim funciona, mas se coloco no Query Analyser funciona, nossa que estranho.
    Da erro de autenticação.
    Se puder me ajudar eu agradeço.
    Obrigado.
    quarta-feira, 22 de outubro de 2008 18:27
  • Eu entendi, coloquei apenas o select abaixo:

    SELECT * FROM [201.76.55.9].isotec_eng.dbo.SE_EFETIVOE

    Mas não funciona. Falha de autentiação.
    Mas na Query analyzer funciona...estranho
    Fico no aguardo.
    Obrigado.

    quarta-feira, 22 de outubro de 2008 18:30
  • Estranho aqui nunca tive problema com isso aqui tente colocar com o Master

     SELECT * FROM [201.76.55.9].Master.dbo.SE_EFETIVOE

     

    mas vou pesquisar aqui para ver se acho algo.

     

    Att.

     

     

    quarta-feira, 22 de outubro de 2008 18:37
  • Não funciona do mesmo jeito...erro de autentiação. estranho que funciona na query analyzer.
    quarta-feira, 22 de outubro de 2008 18:47
  • FABIO EU CONSEGUI AQUI... FUI NO LINKED SERVER - Propriedades desseservidor externo, na aba Segurança. Marquei a opção Be Made using this security context - coloquei o login e senha do meu servidor externo. e funcionou... mesmo assim muito obrigado. vou marcar como resposta pela sua ajuda. Valeu mesmo
    quarta-feira, 22 de outubro de 2008 19:03
  • Opa Fico feliz .cara..valew abraço!!

    quarta-feira, 22 de outubro de 2008 19:09