como agendar um trabalho para a consulta sql para correr diariamente?

Preciso de saber como fazer uma pesquisa SQL correr diariamente usando uma tarefa de agente de servidor SQL, com as configurações mínimas necessárias.

Author: scsimon, 2011-03-29

6 answers

  1. Expandir o nó de agente do servidor SQL e carregar com o botão direito no nó de Tarefas do agente do servidor SQL e seleccionar 'New Job'

  2. Na janela 'New Job' indique o nome da tarefa e uma descrição na página 'General'.

  3. Seleccione 'Steps' no lado esquerdo da janela e carregue em 'New' No fundo.

  4. Na janela 'Steps' indique um nome de passo e seleccione a base de dados com a qual deseja correr a pesquisa.

  5. Colar na Comando T-SQL que deseja executar na janela de comandos e carregar em 'OK'.

  6. Carregue no menu 'Schedule' à esquerda da janela de Nova Tarefa e introduza a informação da programação (por exemplo, diariamente e uma hora).

  7. Clique em 'OK' - e deve ser isso.

(há, obviamente, outras opções que pode adicionar-mas eu diria que é o mínimo que precisa para arranjar um emprego e agendado)

 133
Author: L-Note, 2012-09-17 15:34:15
Fiz um GIF animado dos passos na resposta aceite. Isto é do MSSQL Server 2012

Schedule SQL Job

 27
Author: S.Mason, 2017-08-14 14:00:09

Para fazer isto em t-sql, pode usar os seguintes procedimentos armazenados no sistema para agendar um trabalho diário. Este exemplo agenda diariamente à 1: 00 AM. Veja a Microsoft help para mais detalhes sobre a sintaxe dos procedimentos individuais armazenados e a gama válida de parâmetros.

DECLARE @job_name NVARCHAR(128), @description NVARCHAR(512), @owner_login_name NVARCHAR(128), @database_name NVARCHAR(128);

SET @job_name = N'Some Title';
SET @description = N'Periodically do something';
SET @owner_login_name = N'login';
SET @database_name = N'Database_Name';

-- Delete job if it already exists:
IF EXISTS(SELECT job_id FROM msdb.dbo.sysjobs WHERE (name = @job_name))
BEGIN
    EXEC msdb.dbo.sp_delete_job
        @job_name = @job_name;
END

-- Create the job:
EXEC  msdb.dbo.sp_add_job
    @job_name=@job_name, 
    @enabled=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @description=@description, 
    @category_name=N'[Uncategorized (Local)]', 
    @owner_login_name=@owner_login_name;

-- Add server:
EXEC msdb.dbo.sp_add_jobserver @job_name=@job_name;

-- Add step to execute SQL:
EXEC msdb.dbo.sp_add_jobstep
    @job_name=@job_name,
    @step_name=N'Execute SQL', 
    @step_id=1, 
    @cmdexec_success_code=0, 
    @on_success_action=1, 
    @on_fail_action=2, 
    @retry_attempts=0, 
    @retry_interval=0, 
    @os_run_priority=0, 
    @subsystem=N'TSQL', 
    @command=N'EXEC my_stored_procedure; -- OR ANY SQL STATEMENT', 
    @database_name=@database_name, 
    @flags=0;

-- Update job to set start step:
EXEC msdb.dbo.sp_update_job
    @job_name=@job_name, 
    @enabled=1, 
    @start_step_id=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @description=@description, 
    @category_name=N'[Uncategorized (Local)]', 
    @owner_login_name=@owner_login_name, 
    @notify_email_operator_name=N'', 
    @notify_netsend_operator_name=N'', 
    @notify_page_operator_name=N'';

-- Schedule job:
EXEC msdb.dbo.sp_add_jobschedule
    @job_name=@job_name,
    @name=N'Daily',
    @enabled=1,
    @freq_type=4,
    @freq_interval=1, 
    @freq_subday_type=1, 
    @freq_subday_interval=0, 
    @freq_relative_interval=0, 
    @freq_recurrence_factor=1, 
    @active_start_date=20170101, --YYYYMMDD
    @active_end_date=99991231, --YYYYMMDD (this represents no end date)
    @active_start_time=010000, --HHMMSS
    @active_end_time=235959; --HHMMSS
 12
Author: Doug Lampe, 2017-06-08 21:51:57

Usando T-SQL: O meu trabalho é executar procedimentos armazenados. Você pode mudar facilmente @command para executar o seu sql.

EXEC msdb.dbo.sp_add_job  
   @job_name = N'MakeDailyJob',   
   @enabled = 1,   
   @description = N'Procedure execution every day' ; 

 EXEC msdb.dbo.sp_add_jobstep  
    @job_name = N'MakeDailyJob',   
    @step_name = N'Run Procedure',   
    @subsystem = N'TSQL',   
    @command = 'exec BackupFromConfig';

 EXEC msdb.dbo.sp_add_schedule  
    @schedule_name = N'Everyday schedule',   
    @freq_type = 4,  -- daily start
    @freq_interval = 1,
    @active_start_time = '230000' ;   -- start time 23:00:00

 EXEC msdb.dbo.sp_attach_schedule  
   @job_name = N'MakeDailyJob',  
   @schedule_name = N'Everyday schedule' ;

 EXEC msdb.dbo.sp_add_jobserver  
   @job_name = N'MakeDailyJob',  
   @server_name = @@servername ;
 2
Author: efysis, 2018-06-20 12:41:29

Aqui está um código de amostra:

Exec sp_add_schedule
    @schedule_name = N'SchedulName' 
    @freq_type = 1
    @active_start_time = 08300
 0
Author: gangster, 2016-02-09 02:52:09

Se quiser uma cópia de segurança diária / / a seguir à SQL script store in C:\Users\admin\Desktop\DBScript\DBBackUpSQL.SQL

DECLARE @pathName NVARCHAR(512),
 @databaseName NVARCHAR(512) SET @databaseName = 'Databasename' SET @pathName = 'C:\DBBackup\DBData\DBBackUp' + Convert(varchar(8), GETDATE(), 112) + '_' + Replace((Convert(varchar(8), GETDATE(), 108)),':','-')+ '.bak' BACKUP DATABASE @databaseName TO DISK = @pathName WITH NOFORMAT, 
INIT, 
NAME = N'', 
SKIP, 
NOREWIND, 
NOUNLOAD, 
STATS = 10 
GO

Abra o escalonador de Tarefas

Criar Tarefa - > seleccionar Triggers tab Seleccionar New .

Botão Seleccionar o botão de rádio Diário

Clique Ok Botão

Depois carregue em Action tab seleccione Nova.

Botão Colocar "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" - s ADMIN-PC-i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql" no campo de texto Programa / programa(certifique-se que corresponde à localização dos seus ficheiros e coloque a localização de duas citações em start - > search box and if it find then click it and see the backup is there or not)

-- o caminho acima pode ser instalado 100 write 90 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"

Depois carregue no botão ok

O programa será executado na hora que seleccionar na página Trigger diariamente

Aproveita.............
 -2
Author: pravin Dukare, 2015-06-15 08:54:03