PARSENAME (Transact-SQL)
Applies to:
SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Returns the specified part of an object name. The parts of an object that can be retrieved are the object name, schema name, database name, and server name.
PARSENAME
doesn't indicate whether an object by the specified name exists. PARSENAME
just returns the specified part of the specified object name.
Transact-SQL syntax conventions
Syntax
PARSENAME ('object_name' , object_piece )
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
Arguments
'object_name'
The parameter that holds the name of the object for which to retrieve the specified object part. This parameter is an optionally qualified object name. If all parts of the object name are qualified, this name can have four parts: the server name, the database name, the schema name, and the object name.
Each part of the 'object_name' string is sysname, which is equivalent to nvarchar(128) or 256 bytes. If any part of the string exceeds 256 bytes, PARSENAME
returns NULL
for that part, as it's not a valid sysname.
object_piece
The object part to return. object_piece is int, and can be one of these values:
Value | Description |
---|---|
1 | Object name |
2 | Schema name |
3 | Database name |
4 | Server name |
Return types
sysname
Remarks
PARSENAME
returns NULL
if one of the following conditions is true:
Either object_name or object_piece is
NULL
.A syntax error occurs.
The requested object part has a length of
0
and isn't a valid SQL Server identifier. A zero-length object name renders the complete qualified name as not valid.
Examples
The following example uses PARSENAME
to return information about the Person
table in the AdventureWorks2022
database.
-- 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
Here is the result set.
Object Name
------------------------------
Person
Schema Name
------------------------------
Person
Database Name
------------------------------
AdventureWorks2022
Server Name
------------------------------
(null)