Синтаксические обозначения в Transact-SQL (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

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

Обозначение Используется для
Прописные буквы Ключевые слова Transact-SQL.
курсив Пользовательские параметры синтаксиса Transact-SQL.
полужирный Имена баз данных типов, таблиц, столбцов, индексов, хранимых процедур, программ, типов данных и текст должны вводиться в точном соответствии с примером.
| (вертикальная линия) Разделяет элементы синтаксиса внутри квадратных или фигурных скобок. Может быть использован только один из этих элементов.
[ ] (квадратные скобки) Необязательный элемент синтаксиса.
{ } (фигурные скобки) Обязательные элементы синтаксиса. Фигурные скобки не вводятся.
[ , ...n] Указывает на то, что предшествующий элемент можно повторить n раз. Отдельные вхождения элемента разделяются запятыми.
[...n] Указывает на то, что предшествующий элемент можно повторить n раз. Отдельные вхождения элемента разделяются пробелами.
; Признак конца инструкции Transact-SQL. Хотя точка с запятой не требуется для большинства инструкций в этой версии SQL Server, этот символ станет обязательным в будущей версии.
<label> ::= Имя синтаксического блока. Используйте это соглашение для группирования и маркировки сегментов с длинным синтаксисом или элемента синтаксиса, который может использоваться в нескольких расположениях в пределах одной инструкции. Каждое расположение, в котором может быть использован синтаксический блок, обозначается меткой, заключенной в шевроны: <label>.

Набор представляет собой коллекцию выражений, например <grouping set>; а список — коллекцию наборов, например <composite element list>.

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

Если не указано иное, все ссылки Transact-SQL на имена объектов базы данных могут быть четырехсоставными именами, записываемыми в следующей форме.

server_name.[database_name].[schema_name].object_name

| database_name.[schema_name].object_name

| schema_name.object_name

| object_name

server_name
Указывает имя связанного или удаленного сервера.

database_name
Указывает имя базы данных SQL Server, если объект хранится на локальном экземпляре SQL Server. Когда объект находится на связанном сервере, аргумент database_name указывает каталог OLE DB.

schema_name
Если объект находится в базе данных SQL Server, указывает имя схемы, которая содержит объект. Когда объект находится на связанном сервере, аргумент schema_name указывает имя схемы OLE DB.

object_name
Ссылается на имя объекта.

При ссылке на конкретный объект нет необходимости всякий раз указывать сервер, базу данных и схему — компонент Компонент SQL Server Database Engine попытается определить этот объект. Однако, если объект не удается найти, возвращается ошибка.

Примечание

Чтобы избежать ошибок разрешения имен, при указании объекта области схемы рекомендуется указать имя схемы.

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

Формат ссылки на объект Описание
server.database.schema.object Четырехчастное имя.
server.database..object Имя схемы пропущено.
server..schema.object Имя базы данных пропущено.
server...object Имя базы данных и имя схемы пропущены.
database.schema.object Имя сервера пропущено.
database..object Имя сервера и имя схемы пропущены.
schema.object Имя сервера и имя базы данных пропущены.
object Имена сервера, базы данных и схемы пропущены.

Соглашения примеров кода

Если не указано иное, примеры, приведенные в справочнике по Transact-SQL, были проверены с использованием среды SQL Server Management Studio и настроек по умолчанию для следующих параметров:

  • ANSI_NULLS
  • ANSI_NULL_DFLT_ON
  • ANSI_PADDING
  • ANSI_WARNINGS
  • CONCAT_NULL_YIELDS_NULL
  • QUOTED_IDENTIFIER

Большинство примеров кода в руководстве по Transact-SQL было проверено на серверах, работающих с порядком сортировки с учетом регистра. Тестовые серверы, как правило, использовали кодовую страницу ANSI/ISO 1252.

Многие примеры кода добавляют к строковым константам в Юникоде префикс в виде буквы N. Без префикса N строка преобразуется в кодовую страницу базы данных по умолчанию. Кодовая страница по умолчанию может не распознавать определенные символы.

Ссылки «Относится к»

Ссылка Transact-SQL включает разделы, относящиеся к SQL Server (SQL Server 2008 и выше), База данных SQL Azure и Azure Synapse Analytics.

В верхней части каждой статьи есть раздел, где указано, к каким продуктам относится тема статьи. Если продукт не указан, то компонент, описанный в статье, для данного продукта недоступен. Например, группы доступности были введены в SQL Server 2012 (11.x). В статье о CREATE AVAILABILITY GROUP указано, что эта функция применима к SQL Server (SQL Server 2012 (11.x) и выше), так как она неприменима к SQL Server 2008, SQL Server 2008 R2 или База данных SQL Azure.

К продукту относится общая тема статьи, но в некоторых случаях не все аргументы поддерживаются. Например, пользователи автономной базы данных впервые появились в SQL Server 2012 (11.x). Инструкцию CREATE USER можно применять в любом продукте SQL Server, однако синтаксис WITH PASSWORD не может использоваться с более ранними версиями. Дополнительные разделы Область применения вставляются в описания соответствующих аргументов в статье.

См. также:

Справочник по Transact-SQL (ядро СУБД)
Зарезервированные ключевые слова (Transact-SQL)
Проблемы проектирования Transact-SQL
Проблемы именования Transact-SQL
Проблемы производительности Transact-SQL