Как писать комментарии в sql
Немного комментариев для таблиц в MSSQL
Привет Хабр!
Некоторые из нас пишут и/или поддерживают БД на основе СУБД MSSQL 20xx. Я такими развлечениями занимаюсь давно, и как-то потихоньку я для себя решил писать комментарии к таблицам и столбцам, как к своим так и к чужим. Это оказалось удобно, благодаря тому, что всегда можно увидеть зачем “это” было сделано, и как “это” кушать. Единственным неудобным моментом является написание этих самых комментариев, ибо в MS SQL для этого нужно создавать строчки типа:
Как-то много кода для простой операции, а иных, более лёгких способов я не нашел. Немного подумав, я решил создать простую процедуру для добавления комментариев.
Разумеется я ленив
Спасибо за внимание.
PS: Если вы знаете более простые способы решения описанных выше проблем с комментариями в SQL буду рад прочитать о них в комментариях.
SQL Comments
Комментарии используются для объяснения разделов инструкций SQL или для предотвращения выполнения инструкций SQL.
Примечание: примеры в этой главе не будут работать в Firefox и Microsoft Edge!
Комментарии не поддерживаются в базах данных Microsoft Access. Firefox и Microsoft Edge используют базу данных Microsoft Access в наших примерах.
Комментарии в одной строке
Комментарии одной строки начинаются с—.
Любой текст между—и конец строки будут игнорироваться (не будет выполнена).
В следующем примере в качестве пояснения используется однострочный комментарий:
Пример
В следующем примере используется однострочный комментарий для игнорирования конца строки:
Пример
В следующем примере используется однострочный комментарий для игнорирования оператора:
Пример
Многострочные комментарии
Multi-line comments start with /* and end with */.
Any text between /* and */ will be ignored.
В следующем примере в качестве пояснения используется многострочный комментарий:
Пример
В следующем примере используется многострочный комментарий для игнорирования многих инструкций:
Пример
Чтобы игнорировать только часть инструкции, также используйте /* */ комментарий.
В следующем примере для игнорирования части строки используется комментарий:
Пример
В следующем примере для игнорирования части оператора используется комментарий:
Как писать комментарии в sql
COMMENT — задать или изменить комментарий объекта
Синтаксис
Описание
COMMENT сохраняет комментарий об объекте базы данных.
Для каждого объекта сохраняется только одна строка, так что для изменения комментария нужно просто выполнить COMMENT ещё раз для того же объекта. Чтобы удалить комментарий, вместо текстовой строки укажите NULL . При удалении объектов комментарии удаляются автоматически.
Для большинства типов объектов комментарий может установить только владелец объекта. Но так как роли не имеют владельцев, COMMENT ON ROLE для ролей суперпользователей разрешено выполнять только суперпользователям, а для обычных ролей — тем, кто имеет право CREATEROLE . Так же не имеют владельцев и методы доступа; чтобы добавить комментарий для метода доступа, нужно быть суперпользователем. Разумеется, суперпользователи могут задавать комментарии для любых объектов.
Просмотреть комментарии можно в psql , используя семейство команд \d . Имеется возможность получать комментарии и в других пользовательских интерфейсах, используя те же встроенные функции, что использует psql , а именно obj_description , col_description и shobj_description (см. Таблицу 9.68).
Параметры
Имя объекта, для которого задаётся комментарий. Имена таблиц, агрегатных функций, правил сортировки, перекодировок, доменов, сторонних таблиц, функций, индексов, операторов, классов и семейств операторов, процедур, последовательностей, подпрограмм, объектов текстового поиска и статистики, типов и представлений могут быть дополнены именем схемы. При определении комментария для столбца, имя_отношения должно ссылаться на таблицу, представление, составной тип или стороннюю таблицу. имя_таблицы
имя_домена
При создании комментария для ограничения, триггера, правила или политики эти параметры задают имя таблицы или домена, к которым относится этот объект. исходный_тип
Имя исходного типа данных для приведения. целевой_тип
Имя целевого типа данных для приведения. режим_аргумента
Режим аргумента функции, процедуры или агрегата: IN , OUT , INOUT или VARIADIC . По умолчанию подразумевается IN . Заметьте, что COMMENT не учитывает аргументы OUT , так как для идентификации функции нужны только типы входных аргументов. Поэтому достаточно перечислить только аргументы IN , INOUT и VARIADIC . имя_аргумента
Имя аргумента функции, процедуры или агрегата. Заметьте, что на самом деле COMMENT не обращает внимание на имена аргументов, так как для однозначной идентификации функции достаточно только типов аргументов. тип_аргумента
Тип данных аргумента функции, процедуры или агрегата. oid_большого_объекта
OID большого объекта. тип_слева
тип_справа
Тип данных аргументов оператора (возможно, дополненный именем схемы). В случае отсутствия аргумента префиксного или постфиксного оператора укажите вместо типа NONE . PROCEDURAL
Это слово не несёт смысловой нагрузки. имя_типа
Имя типа данных, для которого предназначена трансформация. имя_языка
Имя языка, для которого предназначена трансформация. текст
Новый комментарий, записанный в виде строковой константы (или NULL для удаления комментария).
Замечания
В настоящее время механизм безопасности в части просмотра комментариев отсутствует: любой пользователь, подключённый к базе данных, может видеть все комментарии всех объектов базы. Для общих объектов, таких как базы данных, роли и табличные пространства, комментарии хранятся глобально, так что их может видеть любой пользователь, подключённый к любой базе данных в кластере. Поэтому ничего секретного писать в комментариях не следует.
MSSQL: T-SQL – комментарии
MSSQL: T-SQL – комментарииКраткая заметка.
В T-SQL есть два варианта добавления коментариев – однострочные, и многострочные.
Однострочные комментарии начинаются с двух тире и заканчиваются новой строкой. Такой комментарий можно добавлять в любом месте кода, например – в конце строки с кодом. В таком случае всё, что указано до “--
” будет выполнено как T-SQL запрос, а остальная часть строки – будет проигнорирована.
Пример:
1> select * from sys.databases -- Это комментарий 2> go name database_id source_database_id owner_sid create_date compatibility_level collation_name user_access user_access_desc is_read_only is_auto_close_on is_auto_shrink_on state state_desc is_in_standby is_cleanly_shutdown is_supplemental_logging_enabled ...
Другой вариант – (“классические”) блочные комментарии. Они начинаются с символов “/*
” и заканчиваются “*/
“. Весь текст, заключённый между ними будет проигнорирован. Как правило – такие комментарии добавляют перед или после большого куска кода, но его можно поместить в любом месте. Кроме того – такой комментарий может заниматься несколько строк.
Пример:
1> /* Коммментарий 2> строка 2 3> */ 4> select state_desc from sys.databases; 5> go state_desc ONLINE ONLINE ONLINE ONLINE ONLINE (5 rows affected)
Нагулено тут по запросу “
Раздел: Databases HOWTO’s MSSQL Метки: MSSQL, SQL, T-SQL
More results…
Exact matches only
Exact matches only
Search in title
Search in title
Search in content
Search in content
Search in excerpt
Hidden
Hidden
Navigation
aСамое читаемое
- CentOS: установка, настройка Zabbix-agent и добавление нового хоста в мониторинг — 507 128 views
- MySQL/MariaDB: наиболее используемые команды, примеры — 289 138 views
- BASH: описание циклов for, while, until и примеры использования — 152 180 views
- Команда find и её опции в примерах — 139 532 views
- Карта сайта — 126 262 views
Архив месяца
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 21 | 22 | 23 | 24 | 25 | |
26 | 27 | 28 | 29 | 30 |
Архивы по годам
Архивы по годам Выберите месяц Июнь 2022 (1) Май 2022 (1) Апрель 2022 (1) Март 2022 (2) Январь 2022 (1) Декабрь 2021 (3) Ноябрь 2021 (8) Октябрь 2021 (4) Сентябрь 2021 (5) Август 2021 (5) Июль 2021 (6) Июнь 2021 (6) Май 2021 (6) Апрель 2021 (11) Март 2021 (8) Февраль 2021 (6) Январь 2021 (1) Декабрь 2020 (1) Ноябрь 2020 (9) Октябрь 2020 (9) Сентябрь 2020 (4) Август 2020 (8) Июль 2020 (4) Июнь 2020 (3) Май 2020 (5) Апрель 2020 (9) Март 2020 (8) Февраль 2020 (9) Январь 2020 (2) Декабрь 2019 (9) Ноябрь 2019 (9) Октябрь 2019 (11) Сентябрь 2019 (11) Август 2019 (10) Июль 2019 (2) Июнь 2019 (4) Май 2019 (9) Апрель 2019 (13) Март 2019 (32) Февраль 2019 (20) Январь 2019 (10) Декабрь 2018 (9) Ноябрь 2018 (12) Октябрь 2018 (15) Сентябрь 2018 (12) Август 2018 (14) Июль 2018 (17) Июнь 2018 (18) Май 2018 (21) Апрель 2018 (6) Март 2018 (18) Февраль 2018 (7) Январь 2018 (13) Декабрь 2017 (14) Ноябрь 2017 (6) Октябрь 2017 (24) Сентябрь 2017 (13) Август 2017 (15) Июль 2017 (11) Июнь 2017 (11) Май 2017 (11) Апрель 2017 (7) Март 2017 (18) Февраль 2017 (13) Январь 2017 (14) Декабрь 2016 (12) Ноябрь 2016 (15) Октябрь 2016 (13) Сентябрь 2016 (21) Август 2016 (19) Июль 2016 (14) Июнь 2016 (8) Май 2016 (24) Апрель 2016 (15) Март 2016 (19) Февраль 2016 (21) Январь 2016 (19) Декабрь 2015 (17) Ноябрь 2015 (17) Октябрь 2015 (14) Сентябрь 2015 (13) Август 2015 (1) Июль 2015 (20) Июнь 2015 (23) Май 2015 (26) Апрель 2015 (28) Март 2015 (30) Февраль 2015 (26) Январь 2015 (24) Декабрь 2014 (31) Ноябрь 2014 (21) Октябрь 2014 (28) Сентябрь 2014 (23) Август 2014 (31) Июль 2014 (23) Июнь 2014 (11) Май 2014 (14) Апрель 2014 (8) Март 2014 (11) Февраль 2014 (11) Январь 2014 (11) Декабрь 2013 (12) Ноябрь 2013 (23) Октябрь 2013 (20) Сентябрь 2013 (30) Август 2013 (20) Июль 2013 (6) Июнь 2013 (9) Май 2013 (5) Апрель 2013 (13) Март 2013 (22) Февраль 2013 (36) Январь 2013 (10) Декабрь 2012 (4) Ноябрь 2012 (8) Октябрь 2012 (13) Сентябрь 2012 (29) Август 2012 (24) Июль 2012 (18) Июнь 2012 (2) Май 2012 (4) Март 2012 (5) Февраль 2012 (5) Январь 2012 (25) Декабрь 2011 (15) Ноябрь 2011 (6) Август 2011 (13)Синтаксис | ClickHouse Docs
В системе есть два вида парсеров: полноценный парсер SQL (recursive descent parser) и парсер форматов данных (быстрый потоковый парсер). Во всех случаях кроме запроса INSERT, используется только полноценный парсер SQL. В запросе INSERT используется оба парсера:
INSERT INTO t VALUES (1, 'Hello, world'), (2, 'abc'), (3, 'def')
Фрагмент INSERT INTO t VALUES
парсится полноценным парсером, а данные (1, 'Hello, world'), (2, 'abc'), (3, 'def')
— быстрым потоковым парсером.
Данные могут иметь любой формат. При получении запроса, сервер заранее считывает в оперативку не более max_query_size
байт запроса (по умолчанию, 1МБ), а всё остальное обрабатывается потоково.
Таким образом, в системе нет проблем с большими INSERT запросами, как в MySQL.
При использовании формата Values в INSERT запросе может сложиться иллюзия, что данные парсятся также, как выражения в запросе SELECT, но это не так. Формат Values гораздо более ограничен.
Далее пойдёт речь о полноценном парсере. О парсерах форматов, смотри раздел «Форматы».
Пробелы
Между синтаксическими конструкциями (в том числе, в начале и конце запроса) может быть расположено произвольное количество пробельных символов. К пробельным символам относятся пробел, таб, перевод строки, CR, form feed.
Поддерживаются комментарии в SQL-стиле и C-стиле.
Комментарии в SQL-стиле: от --
, #!
или #
--
и #!
может не ставиться.
Комментарии в C-стиле: от /*
до */
. Такие комментарии могут быть многострочными. Пробелы тоже не обязательны.Ключевые слова
Ключевые слова не зависят от регистра, если они соответствуют:
- Стандарту SQL. Например, применение любого из вариантов
SELECT
,select
илиSeLeCt
не вызовет ошибки. - Реализации в некоторых популярных DBMS (MySQL или Postgres). Например,
DateTime
иdatetime
.
Зависимость от регистра для имён типов данных можно проверить в таблице system.data_type_families.
В отличие от стандарта SQL, все остальные ключевые слова, включая названия функций зависят от регистра. [a-zA-Z_][0-9a-zA-Z_]*$ и не могут совпадать с ключевыми словами. Примеры: x, _1, X_y__Z123_.
Если вы хотите использовать идентификаторы, совпадающие с ключевыми словами, или использовать в идентификаторах символы, не входящие в регулярное выражение, заключите их в двойные или обратные кавычки, например, "id"
, `id`
.
Литералы
Существуют: числовые, строковые, составные литералы и NULL
.
Числовые
Числовой литерал пытается распарситься:
- Сначала как знаковое 64-разрядное число, функцией strtoull.
- Если не получилось, то как беззнаковое 64-разрядное число, функцией strtoll.
- Если не получилось, то как число с плавающей запятой, функцией strtod.
- Иначе — ошибка.
Соответствующее значение будет иметь тип минимального размера, который вмещает значение.
Например, 1 парсится как UInt8
, а 256 как UInt16
. Подробнее о типах данных читайте в разделе Типы данных.
Примеры: 1
, 18446744073709551615
, 0xDEADBEEF
, 01
, 0.1
, 1e100
, -1e-100
, inf
, nan
.
Строковые
Поддерживаются только строковые литералы в одинарных кавычках. Символы внутри могут быть экранированы с помощью обратного слеша. Следующие escape-последовательности имеют соответствующее специальное значение: \b
, \f
, \r
, \n
, \t
, \0
, \a
, \v
, \xHH
. Во всех остальных случаях, последовательности вида \c
, где c
— любой символ, преобразуется в c
. Таким образом, могут быть использованы последовательности \'
и \\
. Значение будет иметь тип String.
Минимальный набор символов, которых вам необходимо экранировать в строковых литералах: '
и \
. Одинарная кавычка может быть экранирована одинарной кавычкой, литералы 'It\'s'
и 'It''s'
эквивалентны.
Составные
Поддерживаются конструкции для массивов: [1, 2, 3]
и кортежей: (1, 'Hello, world!', 2)
.
На самом деле, это вовсе не литералы, а выражение с оператором создания массива и оператором создания кортежа, соответственно.
Массив должен состоять хотя бы из одного элемента, а кортеж — хотя бы из двух.
Кортежи носят служебное значение для использования в секции IN
SELECT
. Кортежи могут быть получены как результат запроса, но они не могут быть сохранены в базе данных (за исключением таблицы Memory.)NULL
Обозначает, что значение отсутствует.
Чтобы в поле таблицы можно было хранить NULL
, оно должно быть типа Nullable.
В зависимости от формата данных (входных или выходных) NULL
может иметь различное представление. Подробнее смотрите в документации для форматов данных.
При обработке NULL
есть множество особенностей. Например, если хотя бы один из аргументов операции сравнения — NULL
, то результатом такой операции тоже будет NULL
. Этим же свойством обладают операции умножения, сложения и пр. Подробнее читайте в документации на каждую операцию.
В запросах можно проверить NULL
с помощью операторов IS NULL и IS NOT NULL, а также соответствующих функций isNull
и isNotNull
.
Heredoc
Синтаксис heredoc — это способ определения строк с сохранением исходного формата (часто с переносом строки). Heredoc
задается как произвольный строковый литерал между двумя символами $
, например $heredoc$
. Значение между двумя heredoc
обрабатывается «как есть».
Синтаксис heredoc
часто используют для вставки кусков кода SQL, HTML, XML и т.п.
Пример
Запрос:
SELECT $smth$SHOW CREATE VIEW my_view$smth$;
Результат:
┌─'SHOW CREATE VIEW my_view'─┐
│ SHOW CREATE VIEW my_view │
└────────────────────────────┘
Функции
Функции записываются как идентификатор со списком аргументов (возможно, пустым) в скобках. В отличие от стандартного SQL, даже в случае пустого списка аргументов, скобки обязательны. Пример: now()
.
Бывают обычные и агрегатные функции (смотрите раздел «Агрегатные функции»). Некоторые агрегатные функции могут содержать два списка аргументов в круглых скобках. Пример:
. Такие агрегатные функции называются «параметрическими», а первый список аргументов называется «параметрами». Синтаксис агрегатных функций без параметров ничем не отличается от обычных функций.
Операторы
Операторы преобразуются в соответствующие им функции во время парсинга запроса, с учётом их приоритета и ассоциативности.
Например, выражение 1 + 2 * 3 + 4
преобразуется в plus(plus(1, multiply(2, 3)), 4)
.
Типы данных и движки таблиц
Типы данных и движки таблиц в запросе CREATE
записываются также, как идентификаторы или также как функции. То есть, могут содержать или не содержать список аргументов в круглых скобках. Подробнее смотрите разделы «Типы данных», «Движки таблиц», «CREATE».
Синонимы выражений
Синоним — это пользовательское имя выражения в запросе.
expr AS alias
AS
— ключевое слово для определения синонимов. Можно определить синоним для имени таблицы или столбца в секцииSELECT
без использования ключевого словаAS
.Например, `SELECT table_name_alias.column_name FROM table_name table_name_alias`.
В функции [CAST](/docs/ru/sql-reference/syntax#type_conversion_function-cast), ключевое слово `AS` имеет другое значение. Смотрите описание функции.
expr
— любое выражение, которое поддерживает ClickHouse.Например, `SELECT column_name * 2 AS double FROM some_table`.
alias
— имя длявыражения
. Синонимы должны соответствовать синтаксису идентификаторов.Например, `SELECT "table t".column_name FROM table_name AS "table t"`.
Примечания по использованию
Синонимы являются глобальными для запроса или подзапроса, и вы можете определить синоним в любой части запроса для любого выражения. Например, SELECT (1 AS n) + 2, n
.
Синонимы не передаются в подзапросы и между подзапросами. Например, при выполнении запроса SELECT (SELECT sum(b.a) + num FROM b) - a.a AS num FROM a
ClickHouse сгенерирует исключение Unknown identifier: num
.
Если синоним определен для результирующих столбцов в секции SELECT
вложенного запроса, то эти столбцы отображаются во внешнем запросе. Например, SELECT n + m FROM (SELECT 1 AS n, 2 AS m)
.
Будьте осторожны с синонимами, совпадающими с именами столбцов или таблиц. Рассмотрим следующий пример:
CREATE TABLE t
(
a Int,
b Int
)
ENGINE = TinyLog()
SELECT
argMax(a, b),
sum(b) AS b
FROM t
Received exception from server (version 18. 14.17):
Code: 184. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Aggregate function sum(b) is found inside another aggregate function in query.
В этом примере мы объявили таблицу t
со столбцом b
. Затем, при выборе данных, мы определили синоним sum(b) AS b
. Поскольку синонимы глобальные, то ClickHouse заменил литерал b
в выражении argMax(a, b)
выражением sum(b)
. Эта замена вызвала исключение. Можно изменить это поведение, включив настройку prefer_column_name_to_alias, для этого нужно установить ее в значение 1
.
Звёздочка
В запросе SELECT
, вместо выражения может стоять звёздочка. Подробнее смотрите раздел «SELECT».
Выражения
Выражение представляет собой функцию, идентификатор, литерал, применение оператора, выражение в скобках, подзапрос, звёздочку. А также может содержать синоним. Список выражений — одно выражение или несколько выражений через запятую. Функции и операторы, в свою очередь, в качестве аргументов, могут иметь произвольные выражения.
Быстрый ответ: как вы комментируете в PL SQL?
Руководство Игрока
ByБенджамин Ноа
PL/SQL поддерживает два стиля комментариев: одна и несколько строк. Двойной дефис (—) в любом месте строки (кроме буквенного символа) превращает оставшуюся часть строки в комментарий. Многострочные комментарии начинаются с косой черты (/*) и заканчиваются косой чертой (*/). Дополнительную информацию см. в разделе «Примечания».
Как вы прокомментируете PL SQL Developer?
Наблюдения
- Начинайте комментарий с косой черты и звездочки (/*). Продолжить текст комментария. Этот текст может занимать несколько строк. Завершите комментарий звездочкой и косой чертой (*/).
- Начинайте комментарий с – (два дефиса). Продолжить текст комментария. Этот текст не может содержать новую строку.
Как аннотировать таблицу в SQL?
Используйте оператор COMMENT, чтобы добавить комментарий к таблице, представлению, материальному представлению или столбцу в словарь данных. Чтобы удалить комментарий из базы данных, установите для него пустую строку «». См. также «Комментарии» для получения дополнительной информации о связывании комментариев с операторами SQL и объектами схемы.
Какие типы комментариев есть в PL SQL?
PL/SQL поддерживает два стиля комментариев: однострочный и многострочный. Однострочные комментарии начинаются с двойного дефиса (- -) в любом месте строки и продолжаются до конца строки. Многострочные комментарии начинаются со звездочки (/*), заканчиваются косой чертой (*/) и могут занимать несколько строк.
Что такое аббревиатура комментария в Oracle SQL?
Привет, в SQL Developer вы можете закомментировать строку или блок, используя «Переключить источник -> Комментарии к строке» (ctrl-slash), но было бы неплохо иметь кнопку, позволяющую делать это не только для строк или блоков. . что делать. но и для части строки.
Как закомментировать хранимую процедуру?
Чтобы создавать комментарии по одному, просто используйте два дефиса «-» перед кодом, который вы хотите прокомментировать. Вы можете использовать эту технику, чтобы закомментировать одну или несколько строк. В этом примере вся строка закомментирована.
Как оставить комментарий в SQL Server Management Studio?
Сочетание клавиш для комментирования текста — CTRL + K, CTRL + C. Сочетание клавиш для комментирования текста — CTRL + K, CTRL + U.
Что такое колонка комментариев?
Добавьте, измените или удалите комментарий столбца проекции. Вы можете добавлять комментарии только к столбцам проекции, но не к столбцам таблицы. Каждый объект может иметь комментарий. Комментарии хранятся в системной таблице COMMENTS.
Что такое комментарии SQL?
Комментарии используются для объяснения разделов операторов SQL или для предотвращения выполнения операторов SQL. Примечание. Примеры в этой главе не работают в Firefox и Microsoft Edge! Комментарии не поддерживаются в базах данных Microsoft Access. В наших примерах Firefox и Microsoft Edge используют базу данных Microsoft Access.
Каков правильный синтаксис для написания комментариев в файле HTML?
HTML-комментарий начинается с . HTML-комментарии видны всем, кто просматривает исходный код страницы, но не отображаются, когда браузер отображает HTML-документ.
Как комментировать в PL?
PL/SQL поддерживает два стиля комментариев: однострочный и многострочный. Двойной дефис (—) в любом месте строки (кроме буквенного символа) превращает оставшуюся часть строки в комментарий. Многострочные комментарии начинаются с косой черты (/*) и заканчиваются косой чертой (*/).
Как ввести комментарий в программе?
Комментарий начинается со звездочки / * косой чертой и заканчивается звездочкой * / косой чертой и может появляться в любом месте вашей программы. Комментарии могут охватывать несколько раз в вашей программе. C. Комментарии обычно добавляются непосредственно над соответствующим исходным кодом C.
Как вы добавляете комментарии к коду Java?
Добавляйте комментарии к коду Java
- Традиционные комментарии. Первые пять строк списка представляют собой традиционный комментарий. Комментарий начинается с /* и заканчивается */.
- Комментарии в конце строки: текст // Я?
- Комментарии Javadoc: комментарий Javadoc начинается с косой черты и двух звездочек (/**).
Как комментировать в Oracle?
Наблюдения
- Начинайте комментарий с косой черты и звездочки (/*). Продолжить текст комментария. Этот текст может занимать несколько строк. Завершите комментарий звездочкой и косой чертой (*/).
- Начинайте комментарий с – (два дефиса). Продолжить текст комментария. Этот текст не может содержать новую строку.
Как закомментировать несколько строк в SQL?
Чтобы прокомментировать или раскомментировать комментарии в Веб-интерфейс > Рабочий лист SQL:
- Выберите несколько строк в электронной таблице. ты начинаешь;
- Нажмите CMD +/ (Mac) или CTRL +/ (Windows). Отмеченные строки закомментированы.
- Нажмите CMD + / (Mac) или CTRL + / (Windows) еще раз. Комментарии удаляются из отмеченных строк.
Как вы прокомментируете несколько строк в Bigquery?
Ctrl+Alt+/ и Shift+Ctrl+Alt+/ — Комментарий/Комментарий вне контекстного меню выбора.
Online Documentation for SQL Manager for PostgreSQL
Сочетания клавиш
Управление базами данных
Shift+Alt+R |
Зарегистрировать базу данных с помощью Мастера регистрации баз данных |
Shift+Alt+U |
Удалить регистрацию выбранной базы данных |
Shift+Ctrl+C |
Подключиться к базе данных |
Shift+Ctrl+D |
Отключиться от базы данных |
Управление объектами баз данных
Ctrl+N |
Создать новый объект. |
Ctrl+O |
Открыть выбранный объект в соответствующем редакторе |
Ctrl+R |
Переименовать выбранный объект |
Shift+Del |
Удалить выбранный объект |
Ctrl+Shift+C |
Свернуть текущую ветвь в Проводнике баз данных |
Ctrl+H |
Редактор функций и |
Инструменты SQL Manager
F11 |
Открыть/закрыть Проводник баз данных |
Ctrl+F |
Открыть окно поиска в Проводнике баз данных |
Shift+Ctrl+T |
Открыть список заданий |
F12 |
Открыть Редактор получения данных |
Shift+F12 |
Создать новый запрос в Редакторе получения данных |
Shift+Ctrl+M |
Открыть Монитор SQL |
Shift+Ctrl+S |
Открыть Редактор выполнения скриптов |
Shift+Ctrl+L |
Открыть Редактор локализаций |
Ins |
Добавить новый подобъект в таблицу (Тип подобъекта определяется открытой вкладкой редактора) |
Ctrl+Ins |
Добавить параметр в Редакторе функций |
Ctrl+Del |
Удалить параметр в Редакторе функций |
Работа с редактором получения данных и редактором выполнения скриптов
F9 |
Выполнить запрос/скрипт |
Alt+F9 |
Выполнить только выделенную часть кода |
Ctrl+Alt+F9 |
Выполнить ту часть кода, на которой стоит курсор |
Ctrl+Alt+F2 |
Удалить контрольную точку (Только для Редактора получения данных) |
Shift+Ctrl+<digit> |
Установить закладку #<digit> |
Ctrl+<digit> |
Перейти к закладке #<digit> |
Ctrl+Q,N |
Перейти к следующей закладке |
Ctrl+Q,P |
Перейти к предыдущей закладке |
F2 |
Поставить маркер на текущую позицию |
Esc |
Убрать маркер (вернуться назад) |
Shift+Esc |
Заменить маркер (сохранить позицию, вернуться назад) |
Ctrl+Z; Alt+BkSp |
Отменить |
Shift+Ctrl+Z; Shift+Alt+BkSp |
Вернуть |
Ctrl+F |
Открыть окно поиска |
Ctrl+R |
Найти и заменить |
F3 |
Продолжить поиск |
Ctrl+I |
Начать инкрементный поиск |
Alt+G |
Перейти к строке под номером. Номер введите в появившемся диалоговом окне. |
Ctrl+L |
Загрузить скрипт из внешнего файла |
Ctrl+S |
Выгрузить скрипт во внешний файл |
Shift+Ctrl+F |
Форматировать текст SQL с помощью Форматтера SQL |
Alt+<symbol> |
Перейти к запросу с символом <&symbol> в имени (только для Редактора получения данных) |
Ctrl+J |
Вставить шаблон клавиатуры |
Ctrl+D |
Переключение режимов отображения результатов запроса (на вкладке Edit или на отдельной вкладке) |
Ctrl+Alt+Left |
Перейти к следующей вкладке Редактора получения данных |
Ctrl+Alt+Right |
Перейти к предыдущей вкладке Редактора получения данных |
Ctrl+Alt+PgUp |
Перейти к последней вкладке Редактора получения данных |
Ctrl+Alt+PgDown |
Перейти к первой вкладке Редактора получения данных |
Ctrl+Q,S |
Переместить курсор на начало строки |
Ctrl+Q,D |
Переместить курсор в конец строки |
Ctrl+Q,R |
Переместить курсор в начало текста |
Ctrl+Q,C |
Переместить курсор в конец текста |
Ctrl+O,N |
Обычный режим выделения |
Ctrl+O,L |
Построчный режим выделения |
Ctrl+O,C |
Выделение по столбцам |
Shift+Ctrl+Left |
Выделить символы до предыдущего слова |
Shift+Ctrl+Right |
Выделить символы до следующего слова |
Shift+Home |
Выделить текст до начала строки |
Shift+End |
Выделить текст до конца строки |
Shift+PageUp |
Выделить текст до начала страницы |
Shift+PageDown |
Выделить текст до конца страницы |
Shift+Ctrl+PageUp |
Выделить текст до первой строки на странице |
Shift+Ctrl+PageDown |
Выделить текст до последней строки на странице |
Shift+Ctrl+Home |
Выделить текст до начала |
Shift+Ctrl+End |
Выделить текст до конца |
Shift+Alt+Left |
Выделить колонку символа слева |
Shift+Alt+Right |
Выделить колонку символа справа |
Shift+Alt+Up |
Выделить колонку на строку вверх |
Shift+Alt+Down |
Выделить колонку на строку вниз |
Shift+Ctrl+Alt+Left |
Выделить колонку слова слева |
Shift+Ctrl+Alt+Right |
Выделить колонку слова справа |
Shift+Alt+Home |
Выделить колонку до начала строки |
Shift+Alt+End |
Выделить колонку до конца строки |
Shift+Alt+PageUp |
Выделить колонку на страницу вверх |
Shift+Alt+PageDown |
Выделить колонку на страницу вниз |
Shift+Ctrl+Alt+Home |
Выделить колонку до самого начала |
Shift+Ctrl+Alt+End |
Выделить колонку до самого конца |
Ctrl+Up |
Прокрутить страницу вверх на строку, не меняя позиции курсора |
Ctrl+Down |
Прокрутить страницу вниз на строку, не меняя позиции курсора |
Alt+Down, Alt+Up |
Переключить регистр слова |
Ctrl+Alt+Up |
Сменить регистр текущего или выделенного символа на верхний |
Ctrl+Alt+Down |
Сменить регистр текущего или выделенного символа на нижний |
Ctrl+G,Ctrl+T |
Включить/отключить сворачивание блоков |
Ctrl+G,Ctrl+F |
Свернуть блок в текущей строке |
Ctrl+G,Ctrl+E |
Развернуть блок на текущей строке |
Ctrl+G,Ctrl+C |
Свернуть/развернуть блок на текущей строке |
Ctrl+G,Ctrl+M |
Свернуть все блоки в тексте |
Ctrl+G,Ctrl+P |
Развернуть все свернутые блоки в тексте |
Ctrl+= |
Свернуть/развернуть ближайший блок |
Shift+Ctrl+B |
Перейти к закрывающей/открывающей скобке |
Shift+Ctrl+I |
Сместить выделенный блок |
Shift+Ctrl+U; Shift+Tab |
Убрать отступ выделенного блока |
Ctrl+/ |
Закомментировать/раскомменитровать выделенные строки |
Ctrl+Space |
Автозаполнение кода |
Ctrl+Alt+Space |
Показать таблицу символов |
Ctrl+Shift+Space |
Показать параметры кода |
Ctrl+Alt+Q |
Show fields |
Ctrl+Alt+T |
Show tables |
Ctrl+Alt+V |
Show views |
Ctrl+Alt+U |
Show functions |
Ctrl+Alt+J |
Show domains |
Ctrl+Alt+G |
Show triggers |
Ctrl+Alt+X |
Show indices |
Ctrl+Alt+S |
Show sequences |
Ctrl+Alt+M |
Show composite types |
Ctrl+Alt+E |
Show enum types |
Ctrl+Alt+Y |
Show base types |
Ctrl+Alt+A |
Show aggregates |
Ctrl+Alt+O |
Show operators |
Ctrl+Alt+N |
Show collations |
Ctrl+Alt+L |
Показать языки описания процедур |
Ctrl+Alt+P |
Показать табличные пространства |
Alt+End |
Пропустить опечатку |
Ctrl+Alt+End |
Пропустить все опечатки |
Alt+Home |
Исправить все опечатки |
F5 |
Добавить точку останова в текущей строке |
Shift+F5 |
Переключить точку останова |
Работа с отчетами
Ctrl+O |
Загрузить отчет из файла |
Ctrl+S |
Сохранить отчет в файл |
Ctrl+P |
Открыть диалоговое окно Print |
Ctrl+Home |
Перейти к первой странице |
Ctrl+Up |
Перейти к предыдущей странице |
Ctrl+Down |
Перейти к следующей странице |
Ctrl+End |
Перейти к последней странице |
Ctrl+D |
Открыть Настройщик отчетов |
Ctrl+\ |
Масштаб 100% |
Ctrl+0 |
Масштаб по ширине страницы |
Ctrl+1 |
Целая страница |
Ctrl+2 |
Две страницы |
Ctrl+4 |
Четыре страницы |
Ctrl+W |
Выровнять по ширине |
Ctrl+M |
Отобразить/скрыть поля |
Ctrl+K |
Задать цвет фона для отчета |
Работа с окнами и вкладками
Ctrl+Tab |
Перейти к следующей вкладке |
Ctrl+Alt-0 |
Открыть список окон |
Ctrl+Alt+D |
Задать значения по умолчанию для всех окон |
Ctrl+F6 |
Перейти к предыдущему окну |
F6 |
Перейти к следующему окну |
Ctrl+W |
Закрыть активное окно |
Transact-SQL | Основные объекты
136
Работа с базами данных в . NET Framework — SQL Server 2012 — Основные объекты SQL
Исходники баз данных
Языком компонента SQL Server Database Engine является Transact-SQL, который обладает основными свойствами любого другого распространенного языка программирования. Эта такие свойства, как:
Все эти особенности описываются в этой статье.
Литералы
Литерал — это буквенно-цифровая (строковая), шестнадцатеричная или числовая константа. Строковая константа содержит один или больше символов определенного набора символов, заключенных между одинарными (‘ ‘) или двойными (» «) прямыми кавычками. (Константы предпочтительно заключать в одинарные кавычки, т.к. двойные кавычки используются во многих других случаях, как мы увидим вскоре.) Чтобы вставить одинарную кавычку в строку, заключенную в одинарные кавычки, нужно использовать две одинарные кавычки последовательно.
Шестнадцатеричные константы используются для представления непечатаемых символов и прочих двоичных данных. Они начинаются символами 0x, за которыми следует четное число буквенных или цифровых символов. В примерах ниже представлена иллюстрация некоторых допустимых и недопустимых строковых и шестнадцатеричных констант:
-- Допустимые строковые и шестнадцатеричные константы 'Санкт-Петербург' "Простая строка" '8910' 'Корректная строка с апострофом - I can''t' 0xCD1F -- Недопустимые строковые константы 'AB'CD' -- нечетное число одинарных кавычек 'Санкт-Петербург" -- строка должна быть заключена в одинаковые кавычки, -- т. е. одинарные или двойные с каждого конца строки
К числовым константам относятся все целочисленные значения и значения с фиксированной и плавающей запятой (точкой). В примере ниже иллюстрируется несколько числовых констант:
160 -160.00 -0.2357E5 -- экспоненциальное представление, где nEm -- означает n умножено на 10 в степени m 43. 3E-4
Константы всегда обладают такими свойствами, как тип данных и длина, которые оба зависят от формата константы. Кроме этого, числовые константы имеют дополнительные свойства — точность и коэффициент масштабирования (scale factor).
Ограничители
В языке Transact-SQL двойные кавычки («) имеют два разных применения. Кроме применения для заключения строк, они также могут использоваться в качестве ограничителей для так называемых идентификаторов с ограничителями (delimited identifier). Идентификатор с ограничителями — это особый вид идентификатора, который обычно применяется для того, чтобы разрешить использование ключевых слов в качестве идентификаторов, а также разрешить использование пробелов в именах объектов баз данных.
Различие между одинарными и двойными кавычками было впервые введено в стандарте SQL92. Применительно к идентификаторам, этот стандарт различает между обычными идентификаторами и идентификаторами с ограничителями. Два ключевых отличия состоят в том, что идентификаторы с ограничителями заключаются в двойные кавычки и они чувствительны к регистру. (В языке Transact-SQL также поддерживается применение квадратных скобок вместо двойных кавычек.)
Двойные кавычки применяются только в качестве ограничителя строк. По большому счету, идентификаторы с ограничителями были введены для того, чтобы позволить определять идентификаторы, которые иначе идентичны зарезервированным ключевым словам. В частности, идентификаторы с ограничителями предотвращают использование имен (идентификаторов и имен переменных), которые могут быть введены в качестве зарезервированных ключевых слов в будущих стандартах SQL. Кроме этого, идентификаторы с ограничителями могут содержать символы, которые, как правило, не разрешаются в именах обычных идентификаторов, например, пробелы.
Применение двойных кавычек в языке Transact-SQL определяется с помощью параметра QUOTED_IDENTIFIRE инструкции SET. Если этому параметру присвоено значение on (значение по умолчанию), идентификаторы, заключенные в двойные кавычки, будут определяться как идентификаторы с ограничителями. В таком случае двойные кавычки нельзя будет применять для ограничения строк.
Комментарии
В языке Transact-SQL существует два способа определения комментариев. В первом, текст, заключенный между парами символов /* и */, является комментарием. Такой комментарий может занимать несколько строк. В другом способе два символа дефиса (—) указывают, что следующий за ними до конца текущей строки текст является комментарием. (Способ обозначения комментариев двумя дефисами отвечает стандарту ANSI SQL, а способ с помощью символов /* и */ является расширением языка Transact-SQL.)
/* Многострочный комментарий */ -- Комментарий в одной строке
Идентификаторы
В языке Transact-SQL идентификаторы применяются для обозначения объектов баз данных, таких как собственно базы данных, их таблицы и индексы. Идентификатор состоит из строки длиной до 128 символов, которая может содержать буквы, цифры и символы _, @, # и &. Первым символом идентификатора должна быть буква или символ _, @ или #. Символ # в начале имени таблицы или хранимой процедуры обозначает временный объект, а символ @ обозначает переменную. Как упоминалось ранее, эти правила не относятся к идентификаторам с ограничителями (также называемыми идентификаторами в скобках), которые могут содержать или начинаться с любого символа, иного, чем сам ограничитель.
Зарезервированные ключевые слова
Каждый язык программирования имеет набор зарезервированных имен, которые требуется писать и применять в определенном формате. Такие имена называются зарезервированными ключевыми словами. В языке Transact-SQL используются разные виды таких имен, которые, как и во многих других языках программирования, нельзя применять в качестве имен объектов, за исключением, когда они используются для этой цели, как идентификаторы с ограничителями (или идентификаторы в скобках).
В языке Transact-SQL имена всех типов данных и системных функций, такие как CHARACTER и INTEGER, не являются зарезервированными ключевыми словами. Поэтому такие слова можно использовать для обозначения объектов. Тем не менее настоятельно рекомендуется не делать этого, т.к. такая практика влечет за собой трудности в чтении и понимании инструкций Transact-SQL.
Rules of SQL formatting — Комментирование кода SQL
В этой статье будут даны советы по комментированию кода T-SQL и повышению производительности при использовании функции комментариев ApexSQL Refactor. ApexSQL Refactor — это надстройка форматирования SQL для SQL Server и Visual Studio с почти 200 параметрами форматирования.
Основная цель комментариев — документировать наш код и писать описания того, что он делает.
Использование комментариев в SQL Server
Microsoft SQL Server поддерживает два типа комментариев:
(–) — строчный комментарий. Его можно использовать в той же строке, что и код SQL, или в отдельной строке. Этот тип комментария начинается с двух тире и заканчивается возвратом каретки:
.ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ ВЫБЕРИТЕ * ОТ HumanResources. Employee SELECT * FROM Person.Address -- Однострочный комментарий
Для многострочных комментариев каждая строка должна начинаться с двух дефисов:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ -- Первая строка многострочного комментария -- Вторая строка многострочного комментария ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address -- Однострочный комментарий ВПЕРЕД
(/*…*/) — блочный комментарий. Его можно использовать в той же строке, что и код SQL, в отдельной строке или в коде. Все, что находится между открывающей и закрывающей парой символов / *, считается частью комментария.
Многострочные /* */ комментарии не могут охватывать пакет. Полный комментарий должен содержаться в пакете. Например, в SQL Query Analyzer и утилите sql команда GO сигнализирует об окончании пакета. Когда утилиты считывают символы GO в первых двух байтах строки, они отправляют весь код с момента последней команды GO на сервер как один пакет. Если GO возникает в начале строки между разделителями /* и */, то с каждым пакетом будет отправляться несопоставленный разделитель комментариев, что вызовет синтаксические ошибки. [1]
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /* Первая строка многострочного комментария. Вторая строка многострочного комментария. */ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address /*Однострочный комментарий*/ ИДТИ
Блочный код можно использовать в любом месте кода SQL:
SELECT Дата рождения, /* Имя, */ Семейное положение ОТ HumanResources.Employee
Замена многострочного комментария однострочным приведет к синтаксической ошибке:
ВЫБЕРИТЕ дату рождения, --FirstName, семейное положение ОТ HumanResources.Employee Сообщение 156, уровень 15, состояние 1, строка 2 Неверный синтаксис рядом с ключевым словом FROM
.
Комментирование хранимых процедур в коде SQL
Рекомендуется начинать хранимую процедуру с комментария, в котором указывается как минимум автор, дата и история обновлений. После этого добавьте высокоуровневое описание функции этого модуля. Имя процедуры будет иметь формат «<глагол><объект>». Каждый параметр должен иметь комментарий по мере необходимости.
Пример комбинации однострочных и блочных комментариев:
/* Объект: хранимая процедура Автор: Милица Медик Дата сценария: 30 декабря 2013 г. Описание: Эта процедура получает список адресов на основе на значение города, которое передается в параметре @City */ СОЗДАТЬ ПРОЦЕДУРУ uspGetAddress @City nvarchar(30) В КАЧЕСТВЕ ВЫБРАТЬ * ОТ AdventureWorks.Person.Address WHERE City = @City -- значение параметра @City сужает критерии поиска. ИДТИ
Примеры комментирования частей хранимых процедур:
НАЧАЛО УСТАНОВИТЬ БЕЗ СЧЕТА; -- Используйте рекурсивный запрос, чтобы перечислить всех сотрудников, необходимых для конкретного менеджера. WITH [EMP_cte]([BusinessEntityID], [OrganizationNode], [FirstName], [LastName], [JobTitle], [RecursionLevel]) — имя и столбцы CTE В КАЧЕСТВЕ ( SELECT e. [BusinessEntityID], e.[OrganizationNode], p.[FirstName],p.[LastName], e.[JobTitle], 0 -- Получить начального сотрудника )
Комментарии к оператору управления
Комментарии к оператору управления, такие как циклы IF-THEN-ELSE, BEGIN-END и WHILE-DO, будут очень похожи на комментарии в любой процедурной программе. Сложные операторы SQL могут потребовать комментария вверху и часто на уровне предложения:
-- Возвращает имя, фамилию, должность и тип бизнес-объекта для указанного контакта. -- Поскольку контакт может выполнять несколько ролей, может быть возвращено более одной строки. НАЧИНАТЬ ЕСЛИ @PersonID НЕ НУЛЬ НАЧИНАТЬ ЕСЛИ СУЩЕСТВУЕТ(ВЫБЕРИТЕ * FROM [HumanResources].[Employee] e ГДЕ e.[BusinessEntityID] = @PersonID) ВСТАВЬТЕ В @retContactInformation ВЫБЕРИТЕ @PersonID, p.FirstName, p.LastName, e.[JobTitle], «Сотрудник» ОТ [Отдел кадров].[Сотрудник] AS e ВНУТРЕННЕЕ СОЕДИНЕНИЕ [Человек].[Человек] p ON p. [BusinessEntityID] = e.[BusinessEntityID] ГДЕ e.[BusinessEntityID] = @PersonID; КОНЕЦ ВОЗВРАЩАТЬСЯ; КОНЕЦ;
Комментарии к пункту
Для сложных соединений может потребоваться комментарий, поясняющий ряд предикатов на более высоком уровне. Кроме того, производная таблица без хорошего псевдонима может нуждаться в комментарии, объясняющем, что она содержит:
-- Присоединиться обратно к Сотруднику, чтобы вернуть имя менеджера. ВЫБЕРИТЕ [EMP_cte].[RecursionLevel], [EMP_cte].[BusinessEntityID],[EMP_cte].[FirstName], [EMP_cte].[LastName], [EMP_cte].[OrganizationNode].ToString() AS [OrganizationNode], p.[FirstName] AS 'имя менеджера', p.[LastName] AS 'ManagerLastName' -- Внешний выбор из CTE ОТ [EMP_cte] ВНУТРЕННЕЕ СОЕДИНЕНИЕ [Человеческие ресурсы].[Сотрудник] e ON [EMP_cte].[OrganizationNode].GetAncestor(1) = e.[OrganizationNode] ВНУТРЕННЕЕ СОЕДИНЕНИЕ [Человек].[Человек] стр.
Комментариями можно управлять с помощью ApexSQL Refactor. В окне Параметры на вкладке Комментарии есть различные параметры для управления комментариями:
Чтобы улучшить читаемость, добавив пустую строку до и после комментариев блока, используя параметр Вставить пустую строку перед комментариями блока и параметр Вставить пустую строку после блока комментариев :
До:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /* Первая строка многострочного комментария. Вторая строка многострочного комментария. */ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address -- Однострочный комментарий ВПЕРЕД
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /* Первая строка многострочного комментария. Вторая строка многострочного комментария. */ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address -- Однострочный комментарий GO
Комментарии блока можно настроить, добавив границы с помощью Добавить границу над комментариями блока с помощью <настраиваемого знака> и Добавить границу под комментариями блока с помощью <настраиваемого знака> 9Варианты 0004:
До:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /* Первая строка многострочного комментария. Вторая строка многострочного комментария. */ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address /*Однострочный комментарий*/ GO
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /********************************************* Первая строка многострочного комментария. Вторая строка многострочного комментария. *********************************************/ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address /****************** Однострочный комментарий ******************/ ВПЕРЕД
ApexSQL Refactor предлагает возможность изменить тип существующих комментариев в зависимости от потребностей пользователя. Если все однострочные комментарии необходимо преобразовать в блочные комментарии, используйте параметр Заменить все комментарии на блочные комментарии :
Раньше:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ -- Первая строка многострочного комментария. -- Вторая строка многострочного комментария. ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address --Однострочный комментарий ИДТИ
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /********************************************* Первая строка многострочного комментария. Вторая строка многострочного комментария. *********************************************/ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address /****************** Однострочный комментарий ******************/ ИДТИ
Все комментарии к блокам можно преобразовать в комментарии к строке с помощью кнопки Изменить все комментарии на комментарии к строке вариант:
Раньше:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /********************************************* Первая строка многострочного комментария. Вторая строка многострочного комментария. *******************************************/ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person. Address /****************** Однострочный комментарий ******************/ ВПЕРЕД
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ -- Первая строка многострочного комментария. -- Вторая строка многострочного комментария. ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address --Однострочный комментарий GO
Чтобы сэкономить время при удалении комментариев или если есть ненужные комментарии, используйте параметр Удалить все блочные комментарии и параметр Удалить все однострочные комментарии :
До:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ /********************************************* Первая строка многострочного комментария. Вторая строка многострочного комментария. *******************************************/ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address /****************** Однострочный комментарий ******************/ GO
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ ВЫБЕРИТЕ * ОТ HumanResources. Employee SELECT * FROM Person.Address ВПЕРЕД
Чтобы удалить все однострочные комментарии, используйте параметр Удалить все однострочные комментарии :
До:
ИСПОЛЬЗУЙТЕ AdventureWorks2012 ИДТИ -- Первая строка многострочного комментария. -- Вторая строка многострочного комментария. ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address -- Однострочный комментарий GO
После:
ИСПОЛЬЗОВАТЬ AdventureWorks2012 ИДТИ ВЫБЕРИТЕ * ОТ HumanResources.Employee SELECT * FROM Person.Address ВПЕРЕД
Ссылки:
[1] Электронная документация по SQL Server — с использованием комментариев
Полезные ресурсы:
Электронная документация по SQL Server — /*…*/ (Комментарий) (Transact-SQL)
Электронная документация по SQL Server — — ( Comment) (Transact-SQL)
Электронная документация по SQL Server — Комментарии
12 февраля 2014 г.
Комментарии PL/SQL — улучшение читаемости кода PL/SQL
Резюме : в этом руководстве вы узнаете, как использовать комментарии PL/SQL, включая однострочные и многострочные комментарии, которые позволяют вам улучшить читаемость вашего кода.
Введение в комментарии PL/SQL
Комментарии PL/SQL позволяют описать назначение строки или блока кода PL/SQL.
При компиляции кода PL/SQL прекомпилятор Oracle игнорирует комментарии. Тем не менее, вы всегда должны использовать комментарии, чтобы сделать ваш код более читабельным и помочь вам и другим разработчикам лучше понять его в будущем.
PL/SQL имеет два стиля комментариев: однострочные и многострочные комментарии.
Однострочные комментарии
Однострочные комментарии начинаются с двойного дефиса ( --
), которые могут появляться в любом месте строки и доходить до конца строки.
Например, следующий однострочный комментарий объясняет значение константы co_vat_rate
:
Язык кода: SQL (язык структурированных запросов) (sql)
-- налог на добавленную стоимость 10% DECLARE co_vat_rate ПОСТОЯННОЕ ЧИСЛО := 0,1;
Иногда при тестировании программы вы можете использовать однострочный комментарий, чтобы отключить строку кода. Ниже показано, как закомментировать строку кода:
Язык кода: SQL (язык структурированных запросов) (sql)
-- ОБНОВИТЬ продукты SET list_price = 0 WHERE product_id = l_id;
Если вы хотите прокомментировать только часть строки, вы также можете использовать однострочный комментарий. В следующем примере показано, как закомментировать предложение WHERE
оператора UPDATE
. Весь код, который следует за двойным дефисом --
до конца строки, будет рассматриваться как комментарий:
Язык кода: SQL (язык структурированных запросов) (sql)
ОБНОВЛЕНИЕ продуктов SET list_price = 0; -- ГДЕ product_id = l_id;
Обратите внимание, что мы добавляем точку с запятой ( ;
) перед ( --
), чтобы сделать оператор действительным.
Многострочные комментарии
Многострочный комментарий начинается с косой черты ( /*
) и заканчивается звездочкой ( */
) и может занимать несколько строк:
Язык кода: SQL (язык структурированных запросов) (sql)
/* Это многострочный комментарий который может занимать несколько строк */
Обратите внимание, что можно использовать многострочный комментарий как однострочный:
Язык кода: SQL (язык структурированных запросов) (sql)
/* Многострочный комментарий можно используется как однострочный комментарий */
Мы часто используем многострочный комментарий для описания назначения блока кода, как в следующем примере:
Язык кода: SQL (язык структурированных запросов) (sql)
/* Этот код позволяет пользователям вводить идентификатор клиента и вернуть соответствующее имя клиента и кредитный лимит */ ЗАЯВИТЬ l_customer_name customers. name%TYPE; l_credit_limit клиентов.credit_limit%TYPE; НАЧИНАТЬ ... КОНЕЦ; /
Для удобства сопровождения не рекомендуется смешивать комментарии следующим образом:
Язык кода: SQL (язык структурированных запросов) (sql)
НАЧАЛО -- однострочный комментарий /* другой комментарий */ НУЛЕВОЙ; /* многострочный комментарий -- с еще одним однострочным комментарием */ КОНЕЦ; /
Вместо этого используйте следующее:
Язык кода: SQL (язык структурированных запросов) (sql)
НАЧАЛО -- однострочный комментарий, еще один комментарий НУЛЕВОЙ; /* многострочный комментарий который имеет еще один однострочный комментарий */ КОНЕЦ; /
Замечания по использованию комментариев PL/SQL
PL/SQL не позволяет вкладывать многострочный комментарий в другой многострочный комментарий. Следующий кодовый блок недействителен:
Язык кода: SQL (язык структурированных запросов) (sql)
НАЧАЛО /* многострочный комментарий /* вложенный многострочный комментарий */ */ -- -> ошибка КОНЕЦ; /
Для блока PL/SQL, который будет обрабатываться динамически, нельзя использовать однострочные комментарии. Поскольку прекомпилятор Oracle будет игнорировать символы конца строки, из-за которых однострочные комментарии расширяются до конца блока. В этом случае вместо этого вы можете использовать многострочные комментарии.
Из этого руководства вы узнали о комментариях PL/SQL, включая однострочные и многострочные комментарии, которые позволяют документировать назначение вашего кода.
Было ли это руководство полезным?
Комментарии SQL — javatpoint
следующий → ← предыдущая Комментарии SQL используются для объяснения разделов операторов SQL и используются для предотвращения операторов SQL. Во многих языках программирования комментарии имеют большое значение. База данных Microsoft Access не поддерживает комментарии. Итак, Mozilla Firefox и Microsoft Edge в примерах используют базу данных Microsoft Access. Существует три типа комментариев, которые приведены ниже:
Однострочный комментарийКомментарии, начинающиеся и заканчивающиеся одной строкой, произносятся как отдельные строки комментариев. Строка, начинающаяся с «–», является однострочным комментарием, и эта конкретная строка не выполняется. Текст между — и концом строки игнорируется и не может быть выполнен. Синтаксис:
В следующем примере используется однострочный комментарий: Пример 1—Выбрать все: ВЫБЕРИТЕ * ОТ сотрудников; В данном примере используется однострочный комментарий для игнорирования конца строки: Пример 2SELECT * FROM Customers — WHERE City=’London’; В следующем примере однострочный комментарий используется для игнорирования инструкций: Пример 3—SELECT * FROM Сотрудников; ВЫБЕРИТЕ * ИЗ ПРОДУКТОВ;________________________________________________________________________________ Многострочные комментарииКомментарии, которые начинаются с одной строки и заканчиваются на разных фронтах, считаются многострочными. Текст между /* и */ игнорируется в части кода. Строка, начинающаяся с ‘/*’, считается начальной точкой комментария и завершается, когда ‘*/’ находится в конце. Синтаксис : /* многострочный комментарий еще комментарий */ ВЫБЕРИТЕ * ОТ клиентов; Пример 1/*Выбираем все столбцы всех рекордов в таблице «Клиенты»:*/ ВЫБЕРИТЕ * ОТ сотрудников; В приведенном ниже примере используется многострочный комментарий, чтобы игнорировать дополнительные операторы: Пример 2/*SELECT * FROM Customers; ВЫБЕРИТЕ * ИЗ продуктов; ВЫБЕРИТЕ * ИЗ Заказов; ВЫБЕРИТЕ * ИЗ категорий; */ ВЫБЕРИТЕ * ОТ поставщиков; Чтобы игнорировать часть оператора, используйте комментарий /*……. */ . В следующем примере комментарий используется для игнорирования части кода: Пример многострочного комментария SQL:/*SELECT * FROM Customers; ВЫБЕРИТЕ * ИЗ продуктов; ВЫБЕРИТЕ * ИЗ Заказов; ВЫБЕРИТЕ * ИЗ категорий; */ ВЫБЕРИТЕ * ОТ поставщиков; ПримерSELECT CustomerName, /*City,*/ Country FROM Customers; В следующем примере комментарий используется, чтобы не быть частью инструкции: ПримерSELECT * FROM Customers WHERE (CustomerName LIKE ‘L%. ‘ ИЛИ Имя клиента LIKE ‘R%’ /* ИЛИ Имя клиента LIKE ‘S%’ ИЛИ Имя клиента LIKE ‘T%’*/ ИЛИ Имя клиента LIKE ‘W%’) И Country=’Америка.’ ЗАКАЗАТЬ ПО CustomerName; Встроенные комментарии:Встроенные комментарии являются расширением многострочных комментариев, и комментарии могут указываться между операторами и заключаться между ‘/*’ и ‘*/’. Синтаксис : SELECT * FROM /*Employees; */ Примеры:Многострочный комментарий -> /* ВЫБРАТЬ * FROM Учителя; ВЫБЕРИТЕ * FROM Teacher_DETAILS; ВЫБЕРИТЕ * ИЗ Заказов; */ ВЫБЕРИТЕ * ИЗ Курса; Комментарий в строке -> ВЫБЕРИТЕ * ОТ Студентов; SELECT * FROM /* Employee_DETAILS; ВЫБЕРИТЕ * ИЗ Заказов; ВЫБЕРИТЕ * ИЗ */ Темы; Индикаторы комментариев SQLИндикатор комментария SQL указывается согласно приведенным примерам Он включает двойной дефис (—), фигурные скобки ({}) и разделители комментариев в стиле C (/* . . . . */). Он также включает комментарии после утверждения. ВЫБЕРИТЕ * ОТ клиента; — Выделяет все строки и столбцы ВЫБЕРИТЕ * ОТ сотрудника; {Выбирает все строки и столбцы} ВЫБЕРИТЕ * ОТ сотрудника; /*Выбирает все столбцы и строки*/копировать в буфер обмена В приведенных ниже примерах мы помещаем комментарии в однострочный код — .ВЫБЕРИТЕ * ОТ клиента; — Выделяет все строки и столбцы ВЫБЕРИТЕ * ОТ сотрудника; {Выбирает все столбцы и строки} ВЫБЕРИТЕ * ОТ клиента; /*Выбирает все столбцы и строки*/ Примеры многострочных операторов —ВЫБЕРИТЕ * ОТ клиента; — Выделяет все столбцы и строки — из таблицы клиентов ВЫБЕРИТЕ * ОТ клиента; {Выбирает все столбцы и строки из таблицы клиентов} ВЫБЕРИТЕ * ОТ клиента; /*Выбирает все столбцы и строки из таблицы клиентов*/копировать в буфер обмена SELECT * — выбирает все столбцы и строки ОТ заказчика; — из таблицы клиентов SELECT * {Выбирает все столбцы и строки} ОТ заказчика; {из таблицы клиентов} SELECT * /*Выбирает все столбцы и строки*/ ОТ заказчика; /*из таблицы клиентов*/скопировать в буфер обмена Следующая темаУчебник по SQL ← предыдущая следующий → |
Оператор комментариев SQL
Оператор комментариев SQL
Оператор комментариев SQL может упростить чтение и обслуживание вашего приложения. За Например, мы можем включить комментарий в оператор, описывающий цель утверждения в вашем приложении, за исключением подсказки, комментарии в SQL. Оператор не влияет на выполнение оператора. Пожалуйста, обратитесь к подсказкам по использованию этой конкретной формы комментария.
Между любыми ключевыми словами, параметрами или знаками препинания в выражении может стоять комментарий. Вы можете включить комментарий в выписку двумя способами:
Начинайте комментарий с косой черты и звездочки (/*). Перейдите к тексту комментария. Этот текст может занимать несколько строк.
Завершите комментарий звездочкой и косой чертой (*/). Открывающие и завершающие символы не нужно отделять от текста пробелом или разрывом строки.
Начинайте комментарий с — (два дефиса). Перейдите к тексту комментария. Этот текст не может распространяться на новую строку. Завершите комментарий разрывом строки.
Некоторые инструменты, используемые для ввода SQL, имеют дополнительные ограничения. Например, если вы используете SQL*plus, по умолчанию у вас не может быть пустой строки внутри многострочного комментария.
Для получения дополнительной информации см. документацию по инструменту, который вы используете в качестве интерфейса к базе данных. Оператор SQL может содержать несколько комментариев обоих стилей. Текст комментария может содержать любые печатные символы из набора символов вашей базы данных.
Оператор комментария указывает предоставленный пользователем текст. Комментарии могут быть вставлены в отдельную строку, вложены в конец командной строки SQL или внутри оператора SQL. Сервер не оценивает комментарий.
Комментарий SQL использует два дефиса ( — ) для однострочных или вложенных комментариев. Комментарии, вставленные с — , заканчиваются новой строкой, которая указывается с возвратом каретки. Символ (U+000A), символ перевода строки (U+000D) или их комбинация в комментариях SQL.
Максимальной длины комментариев нет. В следующей таблице перечислены сочетания клавиш, которые можно использовать для комментирования или раскомментирования текста.
Синтаксис
- — text_of_comment
Примеры
В следующем примере используются символы комментария —.
Синтаксис
- — Выберите образец базы данных. образец ЕГЭ
- ;
- GO
- — Выберите все столбцы и все строки из таблицы Адреса.
- ВЫБОР *
- ОТ Сведения о заказе
- ORDER BY OrderId ASC; — Нам не обязательны указывать ASC, поскольку
- — значение по умолчанию.
Однострочные комментарии SQL
Однострочные комментарии начинаются с —. Любой текст между — и концом строки будет проигнорирован (не будет выполнен). В следующем примере в качестве пояснения используется однострочный комментарий.
Синтаксис
- —Выбрать все:
- SELECT * FROM OrderDetails ;
В следующем примере однострочный комментарий используется для игнорирования конца строки.
Синтаксис
- SELECT * FROM OrderDetails — WHERE OrderName=’Coffee’;
В следующем примере однострочный комментарий используется для игнорирования инструкции.
Синтаксис
- —SELECT * FROM OrderDetails;
- SELECT * FROM OrderDetails ;
Многострочные комментарии SQL
Многострочные комментарии SQL начинаются с /* и заканчиваются */. Любой текст между /* и */ будет игнорироваться. В следующем примере в качестве пояснения используется многострочный комментарий.
Синтаксис
- /*Выбрать все столбцы
- всех записей
- в таблице OrderDetails:*/
- SELECT * FROM OrderDetails;
В следующем примере многострочный комментарий используется для игнорирования многих операторов.
Синтаксис
- /*SELECT * FROM Customers;
- SELECT * FROM Products;
- ВЫБРАТЬ * ИЗ Заказов;
- ВЫБЕРИТЕ * ИЗ Категорий;*/
- SELECT * FROM OrderDetails;
Чтобы игнорировать только часть оператора, используйте также комментарий /* */. В следующем примере комментарий используется для игнорирования части строки.
Синтаксис
- SELECT CustomerName, /*City,*/ Country FROM Customers;
В следующем примере комментарий используется для игнорирования части оператора.
Синтаксис
- SELECT * FROM OrderDetails WHERE (OrderName LIKE ‘L%’
- ИЛИ OrderName LIKE ‘R%’ /*OR OrderName LIKE ‘S%’
- ИЛИ OrderName LIKE ‘T%’*/ ИЛИ OrderName LIKE ‘W%’)
- И ИмяЗаказа =’Манго’
- ORDER BY OrderrAddress;
Сводка
В этой статье вы узнали, как использовать инструкцию комментариев SQL с различными параметрами.
- комментарий sql
- оператор комментария
- оператор комментариев SQL
Как вводить комментарии SQL
Как вводить комментарии SQL
|
Вы можете добавить комментарии, чтобы прояснить цель или результат определенных операторов SQL. Вы также можете использовать символы комментариев во время разработки программы, чтобы отключить выбранные операторы, не удаляя их из исходного кода.
Ваши комментарии могут помочь вам или другим понять роль оператора в программе, процедуре SPL или командном файле. Примеры кода в этом руководстве иногда содержат комментарии, разъясняющие роль оператора SQL в коде.
В следующей таблице показаны символы комментариев SQL, которые вы можете ввести в свой код. Y в столбце означает, что вы можете использовать символ с продуктом или типом базы данных, указанным в заголовке столбца. N в столбце означает, что вы не можете использовать символ с продуктом или типом базы данных, которые указаны в заголовке столбца.
Символ комментария | ESQL/C | Стандарт SPL | БД-доступ | ANSI-совместимые базы данных | Базы данных , которые не соответствуют стандарту ANSI | Описание |
---|---|---|---|---|---|---|
двойное тире (—) | Д | Д | Д | Д | Д | Двойное тире предшествует комментарию. Двойной тире может комментировать только одну строку. Чтобы прокомментировать более одной строки, вы должны поставить двойное тире в начале каждой строки комментария. |
фигурные скобки ({}) | Н | Д | Д | Д | Д | Скобки заключают комментарий. { предшествует комментарию, а } следует за комментарием. Вы можете использовать фигурные скобки для однострочных или многострочных комментариев. Комментарии не могут быть вложенными. |
Если продукт, который вы используете, поддерживает оба символа комментария, выбор символа комментария зависит от ваших требований к соответствию ANSI :
- Двойной тире (—) соответствует стандарту ANSI SQL.
- Фигурные скобки ({}) являются расширением стандарта Informix.
Если соответствие стандарту ANSI не является проблемой, выбор символов комментария зависит от личных предпочтений.
В DB-Access вы можете использовать любой символ комментария при вводе операторов SQL с помощью редактора SQL и при создании командных файлов SQL с помощью редактора SQL или системного редактора. Командный файл SQL — это файл операционной системы, содержащий один или несколько операторов SQL. Командные файлы также известны как командные сценарии. Дополнительные сведения о командных файлах см. в обсуждении командных сценариев в Informix Guide to SQL : Tutorial . Для получения информации о том, как создавать и изменять командные файлы с помощью редактора SQL или системного редактора в DB-Access, см.0027 БД — Доступ к Руководству пользователя .
Вы можете использовать любой символ комментария в любой строке подпрограммы SPL . См. обсуждение того, как комментировать и документировать подпрограмму SPL в Informix Guide to SQL : Tutorial .
В ESQL/C вы можете использовать двойное тире (—) для комментирования операторов SQL. Для получения дополнительной информации об использовании символов комментариев SQL и символов комментариев для конкретных языков в программах ESQL/C см.0027 Informix ESQL/C Руководство программиста .
Примеры символов комментариев SQL
Несколько простых примеров могут помочь проиллюстрировать различные способы использования символов комментариев SQL.
Примеры символа двойного тире
В следующем примере показано использование двойного тире (—) для комментирования инструкции SQL. В этом примере комментарий отображается в той же строке, что и оператор.
- SELECT * FROM customer -- выбирает все столбцы и строки
В следующем примере пользователь вводит ту же инструкцию SQL и тот же комментарий, что и в предыдущем примере, но пользователь помещает комментарий в отдельную строку:
- SELECT * FROM customer
-- Выбирает все столбцы и строки
В следующем примере пользователь вводит ту же инструкцию SQL, что и в предыдущем примере, но теперь вводит многострочный комментарий:
- SELECT * FROM customer
-- Выбирает все столбцы и строки
-- из таблицы клиентов
Примеры символов скобок
В следующем примере показано использование фигурных скобок ({}) для комментирования инструкции SQL. В этом примере комментарий отображается в той же строке, что и оператор.
- SELECT * FROM customer {Выбирает все столбцы и строки}
В следующем примере пользователь вводит ту же инструкцию SQL и тот же комментарий, что и в предыдущем примере, но помещает комментарий в отдельную строку:
- SELECT * FROM customer
{Выбирает все столбцы и строки}
В следующем примере пользователь вводит ту же инструкцию SQL, что и в предыдущем примере, но вводит многострочный комментарий:
- SELECT * FROM customer
{Выбирает все столбцы и строки
из таблицы клиентов}
Символы, отличные от ASCII, в комментариях SQL
Вы можете вводить не- символов ASCII (включая многобайтовые символы) в комментариях SQL, если ваша локаль поддерживает набор кодов с не- символами.0723 ASCII символов. Для получения дополнительной информации об аспектах GLS комментариев SQL см. Informix Guide to GLS Functionality .
Руководство Informix по SQL: синтаксис , версия 9.2
Copyright 1999, Informix Software, Inc. Все права защищены.
Удаление комментариев из кода T-SQL
Удаление комментариев из запроса T-SQL может оказаться непростой задачей, особенно если запрос длинный и содержит несколько разделов и блоков встроенных комментариев.
Комментирование кода для объяснения того, что этот раздел должен делать. Источник: Microsoct DocsЭта процедура удалит все комментарии из вашего запроса T-SQL и вернет только те части, которые не закомментированы.
Процедура способна обнаруживать и удалять следующие типы комментариев (независимо от позиции кода или комментария):
- встроенный комментарий ( — комментарии )
- многострочный комментарий (косая звездочка /* комментарии)
- встроенный блок комментариев
- комментарий внутри комментария (многострочный блок)
Например, такой запрос:
СОЗДАТЬ ИЛИ ИЗМЕНИТЬ ПРОЦЕДУРУ [dbo]. [sql_sample_procedure] В КАЧЕСТВЕ НАЧИНАТЬ -- Запрос /********************* Это наш запрос С автором, датой и местом *******************/ ---- Добавление комментариев ВЫБРАТЬ s.Name ,s.Фамилия -- ,s.Фамилия ,d.DepartmentName -- Комментарий -- Комментарий здесь -- /*,d.DepartmentID*/ /* Это комментарий */ -- работает --------------------- /* это встроенный комментарий в две строки */ /* /* это двойной комментарий */*/ -- работает ,'тест' AS-тест /* /* комментарий */*/ --nope ОТ Студентов AS s ПРИСОЕДИНЯЙТЕСЬ к отделам AS D ON d.DepartmentId = s.DepartmentId КОНЕЦ; ИДТИ
будет преобразован (удален и удалены все блоки комментариев) в:
СОЗДАТЬ ПРОЦЕДУРУ [dbo].[sql_sample_procedure] В КАЧЕСТВЕ НАЧИНАТЬ ВЫБРАТЬ s.Name ,s.Фамилия ,d.Название отдела ,'тест' AS-тест ОТ Студентов AS s ПРИСОЕДИНЯЙТЕСЬ к отделам AS D ON d.DepartmentId = s.DepartmentId КОНЕЦ;
Давайте рассмотрим код T-SQL для удаления комментариев с помощью процедуры. Мы рассмотрим два способа удаления комментариев; как процедура и как запрос T-SQL, передаваемый в качестве аргумента.
Создание процедуры удаления комментариев
Процедура удаления комментариев состоит из трех шагов:
- Запуск EXEC sp_helptext для получения запроса T-SQL в перечисляемой таблице комментарии ; будь то в линию или в несколько строк.
- Удаление однострочных комментариев — комментарии .
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ dbo.SQL_query_table; СОЗДАТЬ ТАБЛИЦУ dbo.SQL_query_table ( идентификатор INT IDENTITY (1,1) НЕ NULL ,query_txt NVARCHAR(4000) ) ВСТАВИТЬ В dbo.SQL_query_table EXEC sp_helptext @objname = @имя_процедуры ОБЪЯВИТЬ @proc_text varchar(8000) = '' ОБЪЯВИТЬ @proc_text_row varchar(8000) ОБЪЯВИТЬ @proc_no_comment varchar(8000) = '' ОБЪЯВИТЬ @comment_count INT = 0 ВЫБЕРИТЕ @proc_text = @proc_text + CASE КОГДА ДЛИН(@proc_text) > 0, ТО '\n' ИНАЧЕ '' КОНЕЦ + query_txt ИЗ dbo. SQL_query_table ОБЪЯВИТЬ @i INT = 1 DECLARE @rowcount INT = (ВЫБЕРИТЕ ДЛИН(@proc_text)) ПОКА (@i <= @rowcount) НАЧИНАТЬ ЕСЛИ ПОДСТРОКА(@proc_text,@i,2) = '/*' НАЧИНАТЬ ВЫБЕРИТЕ @comment_count = @comment_count + 1 КОНЕЦ ИНАЧЕ, ЕСЛИ ПОДСТРОКА(@proc_text,@i,2) = '*/' НАЧИНАТЬ ВЫБЕРИТЕ @comment_count = @comment_count - 1 КОНЕЦ ИНАЧЕ, ЕСЛИ @comment_count = 0 ВЫБЕРИТЕ @proc_no_comment = @proc_no_comment + SUBSTRING(@proc_text,@i,1) ЕСЛИ ПОДСТРОКА(@proc_text,@i,2) = '*/' ВЫБЕРИТЕ @i = @i + 2 ЕЩЕ ВЫБЕРИТЕ @i = @i + 1 КОНЕЦ ПОКА (@i <= @rowcount) НАЧИНАТЬ ЕСЛИ ПОДСТРОКА(@proc_text,@i,4) = '/*/*' НАЧИНАТЬ ВЫБЕРИТЕ @comment_count = @comment_count + 2 КОНЕЦ ИНАЧЕ, ЕСЛИ ПОДСТРОКА(@proc_text,@i,4) = '*/*/' НАЧИНАТЬ ВЫБЕРИТЕ @comment_count = @comment_count - 2 КОНЕЦ ИНАЧЕ, ЕСЛИ @comment_count = 0 ВЫБЕРИТЕ @proc_no_comment = @proc_no_comment + SUBSTRING(@proc_text,@i,1) ЕСЛИ ПОДСТРОКА(@proc_text,@i,4) = '*/*/' ВЫБЕРИТЕ @i = @i + 2 ЕЩЕ ВЫБЕРИТЕ @i = @i + 1 КОНЕЦ УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ #tbl_sp_no_comments СОЗДАТЬ ТАБЛИЦУ #tbl_sp_no_comments ( rn INT IDENTITY(1,1) ,sp_text VARCHAR(8000) ) ПОКА (LEN(@proc_no_comment) > 0) НАЧИНАТЬ ВСТАВИТЬ В #tbl_sp_no_comments (sp_text) ВЫБРАТЬ ПОДСТРОКУ( @proc_no_comment, 0, CHARINDEX('\n', @proc_no_comment)) SELECT @proc_no_comment = SUBSTRING(@proc_no_comment, CHARINDEX('\n',@proc_no_comment) + 2, LEN(@proc_no_comment)) КОНЕЦ УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ #tbl_sp_no_comments_fin СОЗДАТЬ ТАБЛИЦУ #tbl_sp_no_comments_fin (rn_orig INT IDENTITY(1,1) ,rn INT ,sp_text_fin VARCHAR(8000)) DECLARE @nofRows INT = (ВЫБЕРИТЕ COUNT(*) FROM #tbl_sp_no_comments) ОБЪЯВИТЬ @ii INT = 1 ПОКА (@nofRows >= @ii) НАЧИНАТЬ ОБЪЯВИТЬ @LastLB INT = 0 ОБЪЯВИТЬ @Com INT = 0 SET @Com = (SELECT CHARINDEX('--', sp_text,@com) FROM #tbl_sp_no_comments ГДЕ rn = @ii) SET @LastLB = (SELECT CHARINDEX(CHAR(10), sp_text, @LastLB) FROM #tbl_sp_no_comments WHERE rn = @ii) ВСТАВИТЬ В #tbl_sp_no_comments_fin (rn, sp_text_fin) ВЫБРАТЬ р-н ,СЛУЧАЙ, КОГДА @Com = 0, ТО sp_text КОГДА @Com <> 0 THEN SUBSTRING(sp_text, 0, @Com) END as new_sp_text ОТ #tbl_sp_no_comments КУДА рн = @ii НАБОР @ii = @ii + 1 КОНЕЦ
После создания процедуры все, что вам нужно сделать, это запустить процедуру удаления комментариев:
EXEC dbo.