The GOTO statement is used to break the normal flow of execution
to a particular label specified with GOTO statement. We will see this with
examples, but the question of matter is whether GOTO statement goes/switch
beyond the block defined with GO statement.
Lets checkout with an example, here we are checking a condition
in “if statement”, if the condition evaluates to true then we are instructing
normal flow to break and go to a particular point i.e. VKM_POINT, but in this
example we define the label VKM_POINT outside the GO block, now let’s see
whether the GOTO has scope beyond the block where it is used.
declare @tempVar int
set @tempVar = 10
if @tempVar =10
goto
VKM_POINT
go
VKM_POINT:
print 'Honey I was waiting for you'
Msg
133, Level 15, State 1, Line 5
A
GOTO statement references the label 'VKM_POINT' but the label has not been
declared.
So with the output we saw that GOTO is unable to switch
the flow beyond the scope of batch. Lets modify the same example to have label
point (VKM_POINT) inside the batch.
declare @tempVar int
set @tempVar = 10
if @tempVar =10
goto
VKM_POINT
VKM_POINT:
print 'Honey I was waiting for you'
go
Honey I was
waiting for you
Here with the output we can
see that GOTO works properly when it has to jump to point which is inside the
block where GOTO is used.
Conclusion:
GOTO has scope only within a block
When programmer carry out rules, the
ordinary human race slight.. J
Post Reference: Vikram Aristocratic Elfin Share
No comments:
Post a Comment