Содержание

Как писать комментарии в 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)

Нагулено тут по запросу “

tsql comment block“.


Раздел: 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

Архив месяца

Сентябрь 2022
ПнВтСрЧтПтСбВс
 1234
567891011
12131415161718
19
20
2122232425
2627282930 

Архивы по годам

Архивы по годам Выберите месяц Июнь 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)

Iconic One Theme | Powered by WordPress

Синтаксис | 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(). Бывают обычные и агрегатные функции (смотрите раздел «Агрегатные функции»). Некоторые агрегатные функции могут содержать два списка аргументов в круглых скобках. Пример:

quantile(0.9)(x). Такие агрегатные функции называются «параметрическими», а первый список аргументов называется «параметрами». Синтаксис агрегатных функций без параметров ничем не отличается от обычных функций.

Операторы​

Операторы преобразуются в соответствующие им функции во время парсинга запроса, с учётом их приоритета и ассоциативности. Например, выражение 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?

Наблюдения

  1. Начинайте комментарий с косой черты и звездочки (/*). Продолжить текст комментария. Этот текст может занимать несколько строк. Завершите комментарий звездочкой и косой чертой (*/).
  2. Начинайте комментарий с – (два дефиса). Продолжить текст комментария. Этот текст не может содержать новую строку.

Как аннотировать таблицу в 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

  1. Традиционные комментарии. Первые пять строк списка представляют собой традиционный комментарий. Комментарий начинается с /* и заканчивается */.
  2. Комментарии в конце строки: текст // Я?
  3. Комментарии Javadoc: комментарий Javadoc начинается с косой черты и двух звездочек (/**).

Как комментировать в Oracle?

Наблюдения

  1. Начинайте комментарий с косой черты и звездочки (/*). Продолжить текст комментария. Этот текст может занимать несколько строк. Завершите комментарий звездочкой и косой чертой (*/).
  2. Начинайте комментарий с – (два дефиса). Продолжить текст комментария. Этот текст не может содержать новую строку.

Как закомментировать несколько строк в SQL?

Чтобы прокомментировать или раскомментировать комментарии в Веб-интерфейс > Рабочий лист SQL:

  1. Выберите несколько строк в электронной таблице. ты начинаешь;
  2. Нажмите CMD +/ (Mac) или CTRL +/ (Windows). Отмеченные строки закомментированы.
  3. Нажмите 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 поддерживает два типа комментариев:

  1. (–) — строчный комментарий. Его можно использовать в той же строке, что и код SQL, или в отдельной строке. Этот тип комментария начинается с двух тире и заканчивается возвратом каретки:

    .
     ИСПОЛЬЗОВАТЬ AdventureWorks2012
    ИДТИ
    ВЫБЕРИТЕ * ОТ HumanResources. Employee
    SELECT * FROM Person.Address -- Однострочный комментарий
    

    Для многострочных комментариев каждая строка должна начинаться с двух дефисов:

     ИСПОЛЬЗОВАТЬ AdventureWorks2012
    ИДТИ
    -- Первая строка многострочного комментария
    -- Вторая строка многострочного комментария
    ВЫБЕРИТЕ * ОТ HumanResources.Employee
    SELECT * FROM Person.Address -- Однострочный комментарий
    ВПЕРЕД 
  2. (/*…*/) — блочный комментарий. Его можно использовать в той же строке, что и код 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 :

 

-- налог на добавленную стоимость 10% DECLARE co_vat_rate ПОСТОЯННОЕ ЧИСЛО := 0,1;

Язык кода: SQL (язык структурированных запросов) (sql)

Иногда при тестировании программы вы можете использовать однострочный комментарий, чтобы отключить строку кода. Ниже показано, как закомментировать строку кода:

 

-- ОБНОВИТЬ продукты SET list_price = 0 WHERE product_id = l_id;

Язык кода: SQL (язык структурированных запросов) (sql)

Если вы хотите прокомментировать только часть строки, вы также можете использовать однострочный комментарий. В следующем примере показано, как закомментировать предложение WHERE оператора UPDATE . Весь код, который следует за двойным дефисом -- до конца строки, будет рассматриваться как комментарий:

 

ОБНОВЛЕНИЕ продуктов 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)

Вместо этого используйте следующее:

 

НАЧАЛО -- однострочный комментарий, еще один комментарий НУЛЕВОЙ; /* многострочный комментарий который имеет еще один однострочный комментарий */ КОНЕЦ; /

Язык кода: 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. Однострочные комментарии.
  2. Многострочные комментарии
  3. Встроенные комментарии

Однострочный комментарий

Комментарии, начинающиеся и заканчивающиеся одной строкой, произносятся как отдельные строки комментариев. Строка, начинающаяся с «–», является однострочным комментарием, и эта конкретная строка не выполняется.

Текст между и концом строки игнорируется и не может быть выполнен.

Синтаксис:

  • — однострочный комментарий
  • — другой комментарий
  • ВЫБРАТЬ * ОТ клиентов;

В следующем примере используется однострочный комментарий:

Пример 1

—Выбрать все: ВЫБЕРИТЕ * ОТ сотрудников;

В данном примере используется однострочный комментарий для игнорирования конца строки:

Пример 2

SELECT * 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.

 

Максимальной длины комментариев нет. В следующей таблице перечислены сочетания клавиш, которые можно использовать для комментирования или раскомментирования текста.

 

Синтаксис 

  1. — text_of_comment

Примеры

 

В следующем примере используются символы комментария —.

 

Синтаксис

  1. — Выберите образец базы данных.
  2. образец ЕГЭ
  3. ;
  4. GO      
  5. — Выберите все столбцы и все строки из таблицы Адреса.
  6. ВЫБОР *      
  7. ОТ Сведения о заказе      
  8. ORDER BY OrderId  ASC; — Нам не обязательны указывать ASC, поскольку       
  9.  — значение по умолчанию.

Однострочные комментарии SQL

 

Однострочные комментарии начинаются с —. Любой текст между — и концом строки будет проигнорирован (не будет выполнен). В следующем примере в качестве пояснения используется однострочный комментарий.

 

Синтаксис  

  1. —Выбрать все:    
  2. SELECT * FROM OrderDetails ;

В следующем примере однострочный комментарий используется для игнорирования конца строки.

 

Синтаксис 

  1. SELECT * FROM OrderDetails — WHERE OrderName=’Coffee’;

В следующем примере однострочный комментарий используется для игнорирования инструкции.

 

Синтаксис 

  1. —SELECT * FROM OrderDetails;
  2. SELECT * FROM OrderDetails ;

Многострочные комментарии SQL

 

Многострочные комментарии SQL начинаются с /* и заканчиваются */. Любой текст между /* и */ будет игнорироваться. В следующем примере в качестве пояснения используется многострочный комментарий.

 

Синтаксис   

  1. /*Выбрать все столбцы    
  2. всех записей    
  3. в таблице OrderDetails:*/    
  4. SELECT * FROM OrderDetails;

В следующем примере многострочный комментарий используется для игнорирования многих операторов.

 

Синтаксис 

  1. /*SELECT * FROM Customers;
  2. SELECT * FROM Products;
  3. ВЫБРАТЬ * ИЗ Заказов;
  4. ВЫБЕРИТЕ * ИЗ Категорий;*/    
  5. SELECT * FROM OrderDetails;

Чтобы игнорировать только часть оператора, используйте также комментарий /* */. В следующем примере комментарий используется для игнорирования части строки.

 

Синтаксис  

  1. SELECT CustomerName, /*City,*/ Country FROM Customers;

В следующем примере комментарий используется для игнорирования части оператора.

 

Синтаксис 

  1. SELECT * FROM OrderDetails WHERE (OrderName LIKE ‘L%’    
  2. ИЛИ OrderName LIKE ‘R%’ /*OR OrderName  LIKE ‘S%’    
  3. ИЛИ OrderName LIKE ‘T%’*/ ИЛИ OrderName LIKE ‘W%’)    
  4. И ИмяЗаказа =’Манго’    
  5. ORDER BY OrderrAddress;

Сводка

 

В этой статье вы узнали, как использовать инструкцию комментариев SQL с различными параметрами.

  • комментарий sql
  • оператор комментария
  • оператор комментариев SQL

Как вводить комментарии SQL

Как вводить комментарии SQL
Руководство Informix по 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, передаваемый в качестве аргумента.

Создание процедуры удаления комментариев

Процедура удаления комментариев состоит из трех шагов:

  1. Запуск EXEC sp_helptext для получения запроса T-SQL в перечисляемой таблице комментарии ; будь то в линию или в несколько строк.
  2. Удаление однострочных комментариев — комментарии .
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ 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.