Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
конечной точке аналитики платформы Аналитики Azure Synapse Analytics
(PDW)
в Microsoft Fabric
Хранилище в Microsoft Fabric
Имя объекта базы данных называется его идентификатором. Все в SQL Server может иметь идентификатор. серверам, базам данных и их объектам, например таблицам, представлениям, столбцам, индексам, триггерам, процедурам, ограничениям и правилам. Для большинства объектов идентификаторы необходимы, а для некоторых, например ограничений, необязательны.
Идентификатор объекта создается при определении объекта. Затем идентификатор используется для обращения к объекту. Например, следующая инструкция создает таблицу с идентификатором TableX
и двумя столбцами с идентификаторами KeyCol
и Description
:
CREATE TABLE TableX (
KeyCol INT PRIMARY KEY,
Description NVARCHAR(80)
);
Эта таблица также содержит безымянное ограничение. Ограничение PRIMARY KEY
не имеет идентификатора.
Параметры сортировки идентификатора зависят от уровня, на котором он определен. К идентификаторам объектов на уровне экземпляров, таких как имена входа и имена базы данных, применяются параметры сортировки по умолчанию для экземпляра. Идентификаторам объектов в пределах базы данных, например таблиц, представлений или имен столбцов, назначаются параметры сортировки, установленные по умолчанию для базы данных. Например, две таблицы с именами, которые отличаются только в случае, можно создать в базе данных, которая имеет параметры сортировки с учетом регистра, но не может быть создана в базе данных с нечувствительными параметрами сортировки регистра.
Примечание.
Имена переменных или параметры функций и хранимых процедур должны соответствовать правилам идентификаторов Transact-SQL.
Классы идентификаторов
Существует два класса идентификаторов.
Регулярные идентификаторы соответствуют правилам формата идентификаторов. Регулярные идентификаторы не разделяются при использовании в инструкциях Transact-SQL.
USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919;
Идентификаторы с разделителями заключены в двойные кавычки (
"
) или квадратные скобки ([
и]
). Идентификаторы, которые соответствуют правилам форматирования идентификаторов, могут быть не разделяемыми. Например:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Идентификаторы, которые не соответствуют всем правилам идентификаторов, должны быть разделены в инструкции Transact-SQL. Например:
USE AdventureWorks2022;
GO
--Identifier contains a space and uses a reserved keyword.
CREATE TABLE [SalesOrderDetail Table] (
[Order] INT NOT NULL,
[SalesOrderDetailID] INT IDENTITY(1, 1) NOT NULL,
[OrderQty] SMALLINT NOT NULL,
[ProductID] INT NOT NULL,
[UnitPrice] MONEY NOT NULL,
[UnitPriceDiscount] MONEY NOT NULL,
[ModifiedDate] DATETIME NOT NULL,
CONSTRAINT [PK_SalesOrderDetail_Order_SalesOrderDetailID] PRIMARY KEY CLUSTERED (
[Order] ASC,
[SalesOrderDetailID] ASC
)
);
GO
SELECT *
FROM [SalesOrderDetail Table] --Identifier contains a space and uses a reserved keyword.
WHERE [Order] = 10; --Identifier is a reserved keyword.
И обычные идентификаторы, и идентификаторы с разделителями должны содержать от 1 до 128 символов. Для локальных временных таблиц идентификатор может содержать не более 116 символов.
Правила для обычных идентификаторов
Имена переменных, функций и хранимых процедур должны соответствовать следующим правилам для идентификаторов Transact-SQL.
Первый символ должен быть одним из следующих элементов:
Буква в соответствии со стандартом Unicode Standard 3,2. Определение букв Юникода включает в себя латинские символы, начиная от
a
z
и доA
Z
, а также буквы из других языков.Знак подчеркивания (
_
@
), знак () или номерной знак (#
).Некоторые символы в начале идентификатора имеют особое значение в SQL Server. Обычный идентификатор, начинающийся с знака, всегда обозначает локальную переменную или параметр и не может использоваться в качестве имени любого другого типа объекта. Идентификатор, начинающийся символом решетки (#), означает временную таблицу или процедуру. Идентификатор, начинающийся с двойных знаков чисел (
##
) обозначает глобальный временный объект. Хотя знак номера или символы двойного номера можно использовать для начала имен других типов объектов, мы не рекомендуем использовать эту практику.Некоторые функции Transact-SQL имеют имена, начинающиеся с двойных знаков (
@@
). Чтобы избежать путаницы с этими функциями, не следует использовать имена, начинающиеся с@@
.
Последующие символы могут содержать следующий список:
Буквы в соответствии со стандартом Unicode Standard 3,2.
Десятичные цифры из набора символов Basic Latin или другого набора символов национального языка.
Знак при входе (), знак доллара (
@
$
), знак номера (#
) или символ подчеркивания (_
).
Идентификатор не должен быть зарезервированным словом Transact-SQL. SQL Server резервирует как верхний регистр, так и строчные версии зарезервированных слов. Если идентификаторы используются в инструкциях Transact-SQL, идентификаторы, которые не соответствуют этим правилам, должны быть разделены двойными кавычками или скобками. Состав зарезервированных слов зависит от уровня совместимости базы данных. Этот уровень можно задать с помощью инструкции уровня совместимости ALTER DATABASE.
Внедренные пробелы или специальные символы не допускаются.
Дополнительные символы не допускаются.
Если идентификаторы используются в инструкциях Transact-SQL, идентификаторы, которые не соответствуют этим правилам, должны быть разделены двойными кавычками или скобками.
Примечание.
Некоторые правила форматирования обычных идентификаторов зависят от уровня совместимости базы данных. Этот уровень можно задать с помощью уровня совместимости ALTER DATABASE.
Параметры сортировки каталога в База данных SQL Azure
Невозможно изменить или задать параметры сортировки логических серверов в База данных SQL Azure. Однако параметры сортировки каждой базы данных можно настроить отдельно для данных в базе данных и для каталога. Параметры сортировки каталога определяют параметры сортировки для системных метаданных, таких как идентификаторы объектов. Оба параметров сортировки можно задать независимо при создании базы данных в портал Azure в T-SQL с помощью CREATE DATABASE в PowerShell с new-AzSqlDatabase.
Дополнительные сведения и примеры см. в статье CREATE DATABASE. Укажите параметры сортировки для базы данных (COLLATE
) и параметры сортировки каталога для системных метаданных и идентификаторов объектов (CATALOG_COLLATION
).
Связанный контент
- Инструкция ALTER TABLE (Transact-SQL)
- CREATE DATABASE
- 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)