Udostępnij za pomocą


PARSENAME (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca określoną część nazwy obiektu. Części obiektu, które można odzyskać, to nazwa obiektu, nazwa schematu, nazwa bazy danych oraz nazwa serwera.

PARSENAME nie wskazuje, czy istnieje obiekt o podanej nazwie. PARSENAME po prostu zwraca określoną część nazwy obiektu.

Transact-SQL konwencje składni

Składnia

PARSENAME ('object_name' , object_piece )

Arguments

'object_name'

Parametr zawierający nazwę obiektu, dla którego należy pobrać określoną część obiektu. Ten parametr jest opcjonalnie kwalifikowaną nazwą obiektu. Jeśli wszystkie części nazwy obiektu są kwalifikowane, nazwa ta może mieć cztery części: nazwę serwera, nazwę bazy danych, nazwę schematu oraz nazwę obiektu.

Każda część ciągu 'object_name' to sysname, co odpowiada nvarchar(128) lub 256 bajtom. Jeśli jakakolwiek część ciągu przekroczy 256 bajtów, PARSENAME zwraca NULL się dla tej części, ponieważ nie jest to ważna nazwa systemu.

object_piece

Część z przedmiotem to powrót. object_piece jest int i może być jedną z tych wartości:

Wartość Description
1 Nazwa obiektu
2 Nazwa schematu
3 Nazwa bazy danych
4 Nazwa serwera

Typy zwracane

sysname

Uwagi

PARSENAME NULL zwraca, jeśli spełnione jest jedno z następujących warunków:

  • Albo object_name, albo object_piece jest .NULL

  • Występuje błąd składniowy.

  • Część obiektu żądanego ma długość i 0 nie jest ważnym identyfikatorem SQL Server. Nazwa obiektu o zerowej długości sprawia, że pełna nazwa kwalifikowana jest nieważna.

Przykłady

Poniższy przykład służy PARSENAME do zwracania Person informacji o tabeli AdventureWorks2025 w bazie danych.

-- 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

Oto zestaw wyników.

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

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

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

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