|
| Begynder script: sql server 2000 Fra : Bjarne K. |
Dato : 12-09-06 15:57 |
|
Jeg er først begyndt at lave lidt scripting idag, og er løbet ind i mit
første problem. Hvordan laver man et struktureret script ?
Jeg prøver forgæves at lave et script til query analyzer, der meget simpelt
kalder forskellige procedure (procedure generelt, altså ikke stored)
Det ser ikke ud til at man kan bruge flere create function eller procedure i
et script, og man kan vist heller ikke globale variabler, så findes der en
måde hvorpå man kan få nedenstående til at virke.
Jeg har brugt goto, idet det er det eneste jeg har været i nærheden at få
til at virke.
Hvis jeg undlader return, gå scriptet i en endless loop, og spyr tal ud, og
hvis jeg tager return med udføres kun label3.
declare var1 o.s.v.
set var1=1
o.s.v.
goto main:
label1:
Begin
Print var1
return
end
label2:
Begin
Print var2
return
end
Label3:
Begin
Print var3
return
end
main:
goto label3
goto label2
goto label1
Det skal bruges til at oprette backupdevices og backupjobs udfra nogle
parametre, der står i scriptet.
Altså hvis der står createmasterbackup='yes' så skal lablen/proceduren eller
funktionen createmasterbackup kaldes. Det skal være i 1 script, så man bare
kan klippe klistre ind i queryanalyser.
--
Med venlig hilsen
Bjarne K.
| |
Peter Lykkegaard (14-09-2006)
| Kommentar Fra : Peter Lykkegaard |
Dato : 14-09-06 10:56 |
|
Bjarne K. wrote:
> Jeg er først begyndt at lave lidt scripting idag, og er løbet ind i mit
> første problem. Hvordan laver man et struktureret script ?
Ved at lave flere stored procedures sammen med IF eller CASE sætniger
> Jeg har brugt goto, idet det er det eneste jeg har været i nærheden at få
> til at virke.
> Hvis jeg undlader return, gå scriptet i en endless loop, og spyr tal ud, og
> hvis jeg tager return med udføres kun label3.
>
Return afbryder scriptet helt og returnere til kaldende program
Hvis du insisterer på at brug Goto så kan du lave ekstra labels så
du hopper til din hoved sektion efter udførelse af under sektionen
Print 'Init'
Goto Header
Sub:
Print 'Sub'
Goto AfterSub
Header:
Print 'Header'
Goto Sub
AfterSub:
Print 'AfterSub'
Return
Det giver dig følgende resultat:
Init
Header
Sub
AfterSub
- Peter
| |
|
|