07. december 2004 - 13:24Der er
6 kommentarer og 1 løsning
sql server agent job retunere succes eller failure
hej kloge Jeg vil meget gerne lave et job på min sql server 7 database der retunere enten success eller failure. Det i sig selv er jo ret nemt, men jeg vil selv bestemme hvad der er succes og hvad der failure og derved bestemme om jeg skal gå til næste skridt eller springe et step over. F.eks. et job der har tre steps. Step 1: declare @count int select @count=count(*) from tabel1 where antal=1 if @count>1 begin retuner success --og gå til næste step end else begin retuner failur -- og gå til sidste skridt end
step 2 update tabel set antal=0 --og gør et eller andet mere..
Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
Det du efterlyser kan jo netop laves i DTS, hvor du kan bestemme hvad der skal ske ved Success, Failure og Complete.
Jeg bruger sjældent flere steps i mine Jobs, jeg laver det hele i DTS.
I din specielle situation kunne du hente @Count over i en global variabel, og så slutte af i en ActiveX task. I den kan du nemlig selv bestemme om der skal være Success eller Failure, ved at (i VBScript) at returnere DTSTaskExecResult_Success eller DTSTaskExecResult_Failure
I hvert jobstep kan du jo lave en raiserror og vha. jobindstillingen på jobsteppet (onFailure/ onSucces osv.) kan du bestemme om den skal fortsætte til næste step eller hvad du nu end har lyst til.
Jeg har lavet meget af den slags logik indbygget i jobs fordi den normale errorhandling i t-sql ikke fungerer specielt godt, så bare spørg løs :O)
Du skal bare lige være opmærksom på at jobbet sikkert siger noget med at blabla.. det jobstep kan ikke nås osv..., det er jo klart, hvis du har en mængde jobsteps som jobbet kun kan komme til vha. succes/failure styring og det skal du altså bare ignorere!
jeg vil meget gerne have det sådan at når jobbet springer et step over skal selve jobbet ikke stå som om det har fejl. problemet med stored-proc er at jeg ikke ved hvormange gange jobbet skal gentages før det stopper. altså Step 1. gør et eller andet step 2. se om der er arbejde til at udføre step 1 igen hvis ja goto step 1 step 3 opdater en eller anden tabel.
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.