Завершение сценария, когда условие выполнено - PullRequest
0 голосов
/ 09 августа 2009

Я пытаюсь решить эту проблему.

У меня есть серия операторов SELECT, как показано ниже.

SELECT Name FROM Table1 WHERE Name LIKE '%Tom%'

SELECT Name From Table2 WHERE Name LIKE '%Tom%'

.
.
.

SELECT Name FROM Table10 WHERE Name Like '%Tom%'

Без использования операторов IF ELSE, можно ли как-нибудь завершить этот сценарий на полпути и вернуть выбор, как только что-то будет выбрано, без необходимости выполнения остальных операторов SELECT?

Приветствие.

1 Ответ

2 голосов
/ 09 августа 2009

Вместо IF..ELSE вы можете проверять значение @@ Rowcount (или некоторых других критериев) после каждого выбора и либо возвращать, либо переходить к метке в конце скрипта, если значение больше 0 Это все еще будет много условных проверок, но с вложением будет не так сложно справиться.

, например

declare @vals table (id int)
Declare @rc int
Insert into @vals (id) values (1)
Select * from @vals
set @rc = @@ROWCOUNT
if @rc <> 0
Begin
    Print 'Exiting Early'
    return 
End
Select * from @vals
Select * from @vals
Select * from @vals
Select * from @vals
Select * from @vals

или

declare @vals table (id int)
Declare @rc int
Insert into @vals (id) values (1)

Select * from @vals
set @rc = @@ROWCOUNT
if @rc <> 0
Begin
    Print 'Exiting Early'
    GOTO EarlyExit 
End


Select * from @vals
Select * from @vals
Select * from @vals
Select * from @vals
Select * from @vals


EarlyExit:
    Print 'We are done here'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...