PARSENAME (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

PARSENAME Не указывает, существует ли объект по указанному имени. PARSENAME возвращает указанную часть указанного имени объекта.

Соглашения о синтаксисе Transact-SQL

Синтаксис

PARSENAME ('object_name' , object_piece )

Аргументы

'object_name'

Параметр, содержащий имя объекта, для которого требуется получить указанную часть объекта. Этот параметр является необязательным именем объекта. Если указываются все части имени объекта, то это имя может состоять из четырех частей: имени сервера, имени базы данных, имени схемы и имени объекта.

Каждая часть строки "object_name" — имя sysname, эквивалентное nvarchar(128) или 256 байтам. Если любая часть строки превышает 256 байт, PARSENAME возвращается NULL для этой части, так как это недопустимое имя sysname.

object_piece

Возвращаемая часть объекта. object_piece является int и может быть одним из следующих значений:

значение Description
1 Наименование объекта
2 Имя схемы
3 Имя базы данных
4 Имя сервера

Типы возвращаемых данных

sysname

Замечания

PARSENAME возвращает значение NULL , если одно из следующих условий имеет значение true:

  • Либо object_name, либо object_pieceNULL.

  • Синтаксическая ошибка.

  • Запрошенная часть объекта имеет длину 0 и не является допустимым идентификатором SQL Server. Нулевая длина имени объекта делает недействительным полное имя объекта.

Примеры

Следующий пример демонстрирует использование PARSENAME для получения информации о таблице Person в базе данных AdventureWorks2022.

-- Uses AdventureWorks

SELECT PARSENAME('AdventureWorks2022.Person.Person', 1) AS 'Object Name';
SELECT PARSENAME('AdventureWorks2022.Person.Person', 2) AS 'Schema Name';
SELECT PARSENAME('AdventureWorks2022.Person.Person', 3) AS 'Database Name';
SELECT PARSENAME('AdventureWorks2022.Person.Person', 4) AS 'Server Name';
GO

Вот результирующий набор.

Object Name
------------------------------
Person

Schema Name
------------------------------
Person

Database Name
------------------------------
AdventureWorks2022

Server Name
------------------------------
(null)