none
Rodar comando SQL em determinado horário RRS feed

  • Pergunta

  • Boa tarde pessoal do Fórum

    Alguém sabe se tem como rodar um comando sql num determinado horário ?

    Por exemplo, rodar um script sql as 22:00 hrs.

    Se alguém puder ajudar eu agradeço.

    Valeu e até mais.
    quinta-feira, 27 de novembro de 2008 18:27

Todas as Respostas

  • Boa tarde Rodolfo, entre no management studio do SQL Server vá em SQL Server Agent depois em Jobs, clique botão direito em New Job, ai é somente seguir os passos Primeiro coloque um nome para seu Job, depois vá em steps e coloque lá o seu Script, crie os schedules.

     

    SDS.

     

     

    quinta-feira, 27 de novembro de 2008 18:37
  • Cara esqueci de mencionar. O meu SQL é o Express 2005. Sinceramente não achei essa opção nele.
    sexta-feira, 28 de novembro de 2008 10:52
  • Cara...

     

    Você pode criar um arquivo .sql com as instruções que você deseja e executar através do utilitário sqlcmd. Então você pode agendar sua execução através do Schedule do próprio Windows.

     

    http://msdn.microsoft.com/en-us/library/ms162773.aspx

     

    Abx.

     

    sexta-feira, 28 de novembro de 2008 11:39
  • Rodolfo exemplo de criação de Jobs por Script, acha que isto vai lhe ajudar

     

     

    USE [msdb]

    GO

    /****** Object: Job [Trunca LOG DBSEU] Script Date: 11/28/2008 12:33:44 ******/

    BEGIN TRANSACTION

    DECLARE @ReturnCode INT

    SELECT @ReturnCode = 0

    /****** Object: JobCategory [[Uncategorized (Local)]]] Script Date: 11/28/2008 12:33:44 ******/

    IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)

    BEGIN

    EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'

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

    END

    DECLARE @jobId BINARY(16)

    EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Trunca LOG DBSEU',

    @enabled=1,

    @notify_level_eventlog=0,

    @notify_level_email=0,

    @notify_level_netsend=0,

    @notify_level_page=0,

    @delete_level=0,

    @description=N'No description available.',

    @category_name=N'[Uncategorized (Local)]',

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

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

    /****** Object: Step [1] Script Date: 11/28/2008 12:33:44 ******/

    EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'1',

    @step_id=1,

    @cmdexec_success_code=0,

    @on_success_action=3,

    @on_success_step_id=0,

    @on_fail_action=2,

    @on_fail_step_id=0,

    @retry_attempts=0,

    @retry_interval=0,

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

    @command=N'backup log DBSEU with truncate_only',

    @database_name=N'DBSEU',

    @flags=0

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

    /****** Object: Step [2] Script Date: 11/28/2008 12:33:44 ******/

    EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'2',

    @step_id=2,

    @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=0,

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

    @command=N'DBCC SHRINKDATABASE (DBSEU, 10)

    ',

    @database_name=N'DBSEU',

    @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'Trunca LOG e Compacta Base SEU',

    @enabled=1,

    @freq_type=4,

    @freq_interval=1,

    @freq_subday_type=1,

    @freq_subday_interval=0,

    @freq_relative_interval=0,

    @freq_recurrence_factor=0,

    @active_start_date=20080828,

    @active_end_date=99991231,

    @active_start_time=131500,

    @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:

     

    sexta-feira, 28 de novembro de 2008 14:37