Понимание T-SQL GOTO
Мой учитель недавно рассказал о заявлении «GOTO», которое будет использоваться в Management Studio, но я сначала не совсем понял его. Он заявил, что GOTO используется для перехода к различным фрагментам кода, с помощью ярлыка, который я могу назвать сам. Это код, который он использовал для представления своего примера:
select 'first' goto jump select 'second' jump: select 'third'
Когда я выполняю код, достаточно уверен, он печатает «первый» и «третий». Теперь мой вопрос заключается в том, что в первую очередь выбрало «второе»?
- Вывод Sql - goto
- Плохая практика использования GOTO SQL Server для обработки ошибок?
- CASE против IF-ELSE-IF против ключевого слова GOTO
- Оператор SQL GOTO с использованием метки переменных
Это немного для комментария.
В вашем примере второй select
явно не нужен.
GOTO
является примером «потока управления» для программного кода. Это конструкция с самых ранних компьютерных языков, которая напрямую связана с тем, как работает оборудование при обработке языков, таких как C или код сборки. С тех пор он был включен во многие другие языки.
GOTO
часто используется с IF
. Тем не менее, T-SQL предлагает лучшие функции потока управления, такие как:
- В ТО ВРЕМЯ КАК
- IF / НАЧАТЬ
- ПОПРОБУЙ ПОЙМАТЬ
В общем, вы должны использовать эти конструкции, а не GOTO
. На самом деле, GOTO
довольно спорный. Многие считают, что это всегда признак плохого кода (иногда используется код спагетти для описания этого типа кода). Другие сделают очень редкое исключение для чего-то вроде обработки исключений (что я иногда делаю) или некоторых типов государственных машин.
По моему мнению, GOTO
следует преподавать только после всех других конструкций и только для очень конкретных целей.