Страницы

Поиск по вопросам

четверг, 5 декабря 2019 г.

Вложенность BEGIN END

#sql_server


Как легко находить вложенности разных блоков друг в друга в большом, уже имеющемся
в беспорядке, объёме кода? Например, вот в таком коде, меня интересует вложенность
значительно сложнее:

BEGIN

SELECT @@VERSION

BEGIN

SELECT @@VERSION

BEGIN 

SELECT @@VERSION

END

BEGIN

SELECT @@VERSION

END
END
END

    


Ответы

Ответ 1



Начиная с SQL Server Management Studio 2008 версии в стандартной функциональности IntelliSense существует функциональность структурирования кода, когда на левом поле окна редактора появляется возможность сворачивания/разворачивания блоков кода, подробнее по ссылке Для активации данной возможности необходимо зайти в меню Сервис -> Параметры и в окне настроек выбрать пункт Текстовый редактор -> Transact SQL -> IntelliSense: 1. Поставить галку Включить использование технологии IntelliSense 2. Далее поставить галку на Определить структуру инструкций. Редактор запросов компонента Database Engine формирует структурные области для каждого элемента в следующей иерархии. Пакеты. Первый пакет содержит код от начала файла до первой команды GO либо до конца файла, если он не содержит команд GO. Каждый последующий пакет после первой команды GO охватывает код от соответствующей команды GO до следующей команды GO, либо до конца файла. Блоки, разделяемые следующими ключевыми словами: BEGIN — END BEGIN TRY — END TRY BEGIN CATCH — END CATCH Многострочные инструкции.

Ответ 2



В SqlServer Management Studio (да и в Visual Studio) понять какой END c каким BEGIN связан поможет сочетание клавиш Ctrl + }. Работает также с блоками BEGIN TRY ... END TRY, BEGIN CATCH ... END CATCH.

Ответ 3



Для определения уровня вложенности используйте оформление кода, отступы и переносы.

Ответ 4



Расширение SSMSboost для SQL Server Management Studio форматирует всё красиво. Одна кнопка все отступы делает. Правда он ещё и все перечисления полей делает с каждой строки. Так что если код огромный, то будет ещё больше, но нагляднее

Комментариев нет:

Отправить комментарий