Идентификаторы баз данных

Имя объекта базы данных называется его идентификатором. Идентификаторы в Microsoft SQL Server могут присваиваться любым сущностям: серверам, базам данных и их объектам, например таблицам, представлениям, столбцам, индексам, триггерам, процедурам, ограничениям и правилам. Для большинства объектов идентификаторы необходимы, а для некоторых, например ограничений, необязательны.

Идентификатор объекта создается при определении объекта. Затем идентификатор используется для обращения к объекту. Например, следующая инструкция создает таблицу с идентификатором TableX и двумя столбцами с идентификаторами KeyCol и Description:

CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))

Эта таблица также содержит безымянное ограничение. Ограничение PRIMARY KEY не имеет идентификатора.

Параметры сортировки идентификатора зависят от уровня, для которого этот идентификатор определен. К идентификаторам объектов уровня экземпляров, например имен входа или имен баз данных, применяются параметры сортировки, установленные по умолчанию для экземпляра. Идентификаторам объектов в пределах базы данных, например таблиц, представлений или имен столбцов, назначаются параметры сортировки, установленные по умолчанию для базы данных. Например, две таблицы с именами, отличающимися только регистром, могут быть созданы в базе данных с параметрами сортировки c учетом регистра, но не могут быть созданы в базе данных с параметрами сортировки без учета регистра.

ПримечаниеПримечание

Имена переменных, функций и хранимых процедур должны соответствовать правилам для идентификаторов Transact-SQL.

Классы идентификаторов

Существует два класса идентификаторов.

  • Обычные идентификаторы
    Соответствуют правилам форматирования идентификаторов. Обычные идентификаторы не разделяются при использовании в инструкциях языка Transact-SQL.

    SELECT *
    FROM TableX
    WHERE KeyCol = 124
    
  • Идентификаторы с разделителем
    Заключаются в двойные кавычки (") или квадратные скобки ([ ]). Идентификаторы, которые соответствуют правилам форматирования идентификаторов, могут быть не разделяемыми. Например:

    SELECT *
    FROM [TableX]         --Delimiter is optional.
    WHERE [KeyCol] = 124  --Delimiter is optional.
    

    Идентификаторы, которые не соответствуют всем правилам для идентификаторов, в инструкции языка Transact-SQL должны быть разделены. Например:

    SELECT *
    FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
    WHERE [order] = 10   --Identifier is a reserved keyword.
    

И обычные идентификаторы, и идентификаторы с разделителем могут содержать от 1 до 128 символов. Для локальных временных таблиц идентификатор может содержать не более 116 символов.

Зарезервированные слова

Идентификатор не должен быть зарезервированным словом Transact-SQL. SQL Server не допускает использования обеих версий зарезервированных слов и в верхнем и в нижнем регистре. Если идентификаторы используются в инструкциях языка Transact-SQL, то идентификаторы, которые не соответствуют этим правилам, должны быть заключены в двойные кавычки или квадратные скобки. Список зарезервированных слов зависит от уровня совместимости базы данных. Этот уровень задается с помощью инструкции ALTER DATABASE.

См. также

Справочник

ALTER TABLE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

CREATE DEFAULT (Transact-SQL)

CREATE PROCEDURE (Transact-SQL)

CREATE RULE (Transact-SQL)

Инструкция CREATE TABLE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

CREATE VIEW (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

DELETE (Transact-SQL)

Инструкция INSERT (Transact-SQL)

Зарезервированные ключевые слова (Transact-SQL)

SELECT (Transact-SQL)

UPDATE (Transact-SQL)