Avatar billede dougheffernan Nybegynder
08. december 2006 - 08:59 Der er 5 kommentarer og
1 løsning

Bruge resultat af stored procedure

Kunne ikke finde på en mere sigende overskrift. :(

Koden som den ser ud p.t.
**************************************************************
USE msdb

EXEC sp_start_job @job_name = 'mitJob1'

BEGIN
  WAITFOR DELAY '00:00:10'

  EXEC sp_help_job
  @job_name = 'mitJob1'
  ,@job_aspect = N'job'
  ,@job_type = null
  ,@owner_login_name = null
  ,@subsystem = null
  ,@category_name = null
  ,@execution_status = 4
 
  IF @execution_status = 4 
    BEGIN
      USE minDatabase
      EXECUTE..minSP
    END
END
**************************************************************

Det jeg ønsker at gøre er:
1. Starte et job
2. Køre en SP når jobbet er færdigt

Hvordan kan jeg bruge @execution_status i min kode
IF @execution_status = 4 virker ikke.
Avatar billede dougheffernan Nybegynder
08. december 2006 - 09:21 #1
Er det måske noget herhenad?
(med min SP og params - selvfølgelig)

SELECT OBJECTPROPERTY(OBJECT_ID('dbo.sp_test'),'IsMSShipped') AS 'System   
Object?', status, status & 0xC0000000
FROM sysobjects WHERE NAME = 'sp_test'
Avatar billede dougheffernan Nybegynder
08. december 2006 - 09:31 #2
Kan ikke se hvordan jeg skal få fat i resultatet af
EXEC sp_help_job
Hvis parameterne er opfyldt, returneres der noget i SQL Analyzer, ellers ikke, men hvordan kan jeg bruge denne information til at bestemme om den efterfølgende kode skal afvikles eller ej...?
Avatar billede dougheffernan Nybegynder
08. december 2006 - 09:57 #3
Er kommet frem til følgende:

USE msdb

EXEC sp_start_job @job_name = 'mitJob1'

DECLARE
  @ReturnValue int

BEGIN
  WAITFOR DELAY '00:00:05'

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

  IF @ReturnValue is null
    BEGIN
      USE minDatabase
      EXECUTE..minSP
    END
END

Men koden stopper når SQL Analyzer har udskrevet resultatet af sp_help_job. :(
Avatar billede dougheffernan Nybegynder
08. december 2006 - 10:12 #4
Ovenstående virker, men kun hvis begge job bliver færdige inden 5 sek., jeg har brug for en loop, så BEGIN gentages hvert 5. sek indtil @ReturnValue  is not null.....hvordan skal koden SÅ se ud?
Avatar billede dougheffernan Nybegynder
08. december 2006 - 10:13 #5
Sorry, omvendt, jeg har ændret koden til
IF @ReturnValue is not null
så loopet skal køres indtil
@ReturnValue is null
Avatar billede dougheffernan Nybegynder
08. december 2006 - 10:45 #6
Ok, fik det til at virke...!
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