Skip to content

Никогда, никогда не начинайте комментарии в T-SQL с двух тире

Пересказ статьи Brent Ozar. Never, Ever, Ever Start T-SQL Comments with Two Dashes


Вы можете написать комментарий в T-SQL двумя способами:

-- начав строку с двух тире или
/* заключив его с двух сторон, как это сделано здесь */

Никогда не используйте двух тире. Никогда.

Проблема состоит в том, что инструменты мониторинга и диагностические административные представления часто вытягивают T-SQL в одну длинную строку. Поэтому запрос:

SELECT *
FROM dbo.Users
WHERE DisplayName = N'Brent Ozar'
-- Это строка комментария
AND Location = N'Iceland'
ORDER BY Reputation DESC;

преобразуется к такому:

SELECT * FROM dbo.Users WHERE DisplayName = N'Brent Ozar' -- This line is a comment AND Location = N'Iceland' ORDER BY Reputation DESC;

И вы не можете сказать, где на самом деле заканчивается запрос. Это РЕАЛЬНО вызывает проблемы в рабочих запросах с соединениями, CTE и прочим - вставьте комментарий в любом месте запроса, и вы поломаете инструменты форматирования запроса, такие как SQL Prompt.

Блочный комментарий:

SELECT *
FROM dbo.Users
WHERE DisplayName = N'Brent Ozar'
/* This line is a comment */
AND Location = N'Iceland'
ORDER BY Reputation DESC;

напротив, будет работать, даже если инструменты мониторинга или DMV вытянут весь код в строку:

SELECT * FROM dbo.Users WHERE DisplayName = N'Brent Ozar' /* This line is a comment */ AND Location = N'Iceland' ORDER BY Reputation DESC;

Здесь по-прежнему очевидно, что делает запрос, и инструменты форматирования T-SQL смогут так же переработать его с правильными переносами строк.

Я знаю, что некоторые из вас захотят прочитать мне лекцию о выборе лучших инструментов мониторинга, но вы не можете быть уверены, какие ужасные инструменты существуют, а некоторые администраторы баз данных просто должны жить с этими инструментами. Делайте блочными ваши комментарии, и ваши преемники будут вам благодарны.
Категории: T-SQL

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.