Никогда, никогда не начинайте комментарии в T-SQL с двух тире
Пересказ статьи Brent Ozar. Never, Ever, Ever Start T-SQL Comments with Two Dashes
Вы можете написать комментарий в T-SQL двумя способами:
-- начав строку с двух тире или
/* заключив его с двух сторон, как это сделано здесь */
Никогда не используйте двух тире. Никогда.
Проблема состоит в том, что инструменты мониторинга и диагностические административные представления часто вытягивают T-SQL в одну длинную строку. Поэтому запрос:
преобразуется к такому:
И вы не можете сказать, где на самом деле заканчивается запрос. Это РЕАЛЬНО вызывает проблемы в рабочих запросах с соединениями, CTE и прочим - вставьте комментарий в любом месте запроса, и вы поломаете инструменты форматирования запроса, такие как SQL Prompt.
Блочный комментарий:
напротив, будет работать, даже если инструменты мониторинга или DMV вытянут весь код в строку:
Здесь по-прежнему очевидно, что делает запрос, и инструменты форматирования 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 смогут так же переработать его с правильными переносами строк.
Я знаю, что некоторые из вас захотят прочитать мне лекцию о выборе лучших инструментов мониторинга, но вы не можете быть уверены, какие ужасные инструменты существуют, а некоторые администраторы баз данных просто должны жить с этими инструментами. Делайте блочными ваши комментарии, и ваши преемники будут вам благодарны.
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой