SQL Server 2012

Returns the specified part of an object name. The parts of an object that can be retrieved are the object name, owner name, database name, and server name.

Note Note

The PARSENAME function does not indicate whether an object by the specified name exists. PARSENAME just returns the specified part of the specified object name.

Topic link icon Transact-SQL Syntax Conventions

PARSENAME ( 'object_name' , object_piece ) 


Is the name of the object for which to retrieve the specified object part. object_name is sysname. 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 owner name, and the object name.


Is the object part to return. object_piece is of type int, and can have these values:

1 = Object name

2 = Schema name

3 = Database name

4 = Server name

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 is not a valid Microsoft SQL Server identifier. A zero-length object name renders the complete qualified name as not valid.

The following example uses PARSENAME to return information about the Person table in the AdventureWorks2012 database.

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

Here is the result set.

Object Name



(1 row(s) affected)

Schema Name



(1 row(s) affected)

Database Name



(1 row(s) affected)

Server Name



(1 row(s) affected)