sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan udføres SQL Server Agent-job, der er angivet i SQL-tabel

a) Opret en proc, der kører gennem listen over procs med passende frequency værdi, udfører dem og opdaterer lastrun kolonne.

  1. Lav et argument @frequency i den, giv den udenfor.
  2. Filtrer din proc-liste med dette argument
  3. Søg gennem listen over procedurer med denne "frekvens", og kør processer

f.eks.

alter proc dbo.RunProcs
  @Frequency varchar(50)
as
begin
  declare @crProcs cursor 

  set @crProcs = cursor fast_forward for
  select m.ProcName
  from dbo.Maintainance m
  where m.Frequency = @Frequency
  order by 1

  ...
  while @@fetch_status = 0
  beign
      begin try
        exec @ProcName
        ...
        update -> succeded
        ...
      end try
      begin catch
        ...
        update -> failed
        ...
      end catch
    fetch ...
  end

  return 1
end

b) Opret planlagte job for at køre denne proc

  1. Opret et job "DAGLE PROCS" , tildel en tidsplan til dette job for at få det til at køre hver dag.

    Tilføj et job-trin med T-SQL:exec dbo.RunProcs @Frequency = 'day'

  2. Opret et job "WEEKLY PROCS" , tildel en tidsplan til dette job for at få det til at køre hver uge

    Tilføj et job-trin med T-SQL:exec dbo.RunProcs @Frequency = 'week'

  3. Opret et job "MÅNEDLIGE PROCS" , tildel en tidsplan til dette job for at få det til at køre hver måned

    Tilføj et job-trin med T-SQL:exec dbo.RunProcs @Frequency = 'month'




  1. Hvordan bruger man GROUP BY til at sammenkæde strenge i MySQL?

  2. Sådan får du første række pr. gruppe i PostgreSQL

  3. SQL Venstre Join

  4. MysQl-fejl:Ugyldigt parameternummer