Avatar billede dougheffernan Nybegynder
15. december 2006 - 11:05 Der er 2 kommentarer og
1 løsning

Order of processing

Jeg har forsøgt mig med et SQL script, som skal starte et job, vente på at jobbet bliver færdigt, så starte et nyt job, vente på at det bliver færdigt og så afvikle en Stored Procedure, men jeg kan ikke få det til at hænge ordentligt sammen. På fanen Messages i SQL Query Analyzer'en kan jeg ud fra antallet af "affected rows" se, at min Stored Procedure bliver afviklet FØR job 2 er helt færdigt. Men hvorfor?

USE msdb

DECLARE
  @ReturnValue int,
  @ReturnValue2 int

EXEC sp_start_job @job_name = 'Job1'

WHILE @ReturnValue is null
BEGIN
  WAITFOR DELAY '00:00:10'

  EXEC @ReturnValue = sp_help_job
    @job_name = 'Job1'
  ,@job_aspect = N'job'
  ,@job_type = null
  ,@owner_login_name = null
  ,@subsystem = null
  ,@category_name = null
  ,@execution_status = 4

  IF @ReturnValue is null
    CONTINUE
  ELSE
    BREAK
  END

EXEC sp_start_job @job_name = 'Job2'

SET @ReturnValue2 = null
   
WHILE @ReturnValue2 is null
  BEGIN
    WAITFOR DELAY '00:00:10'

    EXEC @ReturnValue2 = sp_help_job
    @job_name = 'Job2'
  ,@job_aspect = N'job'
  ,@job_type = null
  ,@owner_login_name = null
  ,@subsystem = null
  ,@category_name = null
  ,@execution_status = 4

    IF @ReturnValue2 is null
      CONTINUE
    ELSE
      BREAK
  END

USE [myDatabase]
EXECUTE..myStoredProcedure
Avatar billede dougheffernan Nybegynder
15. december 2006 - 12:12 #1
Alternativet kunne jo være 2 job, et som starter de 2 job og afvikles f.eks. kl. 00:00 og et job som starter min Stored Procedure kl. 00:10.
Men så er kontrollen af jobstatus ude af vinduet...
Avatar billede dougheffernan Nybegynder
18. december 2006 - 10:34 #2
Det er som om WHILE-løkken ikke virker, som om at WAITFOR DELAY kun afvikles én gang pr. løkke (jeg troede den ville "cykle" gennem løkken hvert 10. sekund og først når betingelsen var opfyldt, springe videre)
Avatar billede dougheffernan Nybegynder
19. januar 2007 - 12:10 #3
Løst ved at lave 1 job med 2 steps, hvor step 2 først afvikles når step 1 er færdig og hvis step 1 fejler, afvikles step 2 ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester