Оператор GOTO в Sql Server
Привет,
У меня есть некоторые сомнения в заявлении GOTO в SqlServer.
DECLARE @a Int DECLARE @b Int SELECT @a = 10 SELECT @b = 5 BEGIN IF @a>@b GOTO Greater IF @a<@b GOTO Lesser END Greater: SELECT @a Lesser: SELECT @b
При выполнении этих операторов я получаю обе метки выполненными. Я полагаю, чтобы получить значение только "@a".
А ниже фрагмент кода, который я получил от MSDN.
Но я не понимаю, почему метка "Branch_Two:" не выполняется... Я в замешательстве....
DECLARE @Counter int; SET @Counter = 1; WHILE @Counter < 10 BEGIN SELECT @Counter SET @Counter = @Counter + 1 IF @Counter = 3 GOTO Branch_One --Jumps to the first branch. IF @Counter = 4 GOTO Branch_Two --This will never execute. END Branch_One: SELECT 'Jumping To Branch One.' GOTO Branch_Three; --This will prevent Branch_Two from executing. Branch_Two: SELECT 'Jumping To Branch Two.' Branch_Three: SELECT 'Jumping To Branch Three.'
Заранее спасибо