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.


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 iconTransact-SQL Syntax Conventions


PARSENAME ( 'object_name' , object_piece ) 


  • 'object_name'
    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.

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

Return Types



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. For more information, see Using Identifiers As Object Names.


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

USE AdventureWorks2008R2;
SELECT PARSENAME('AdventureWorks2008R2..Person', 1) AS 'Object Name';
SELECT PARSENAME('AdventureWorks2008R2..Person', 2) AS 'Schema Name';
SELECT PARSENAME('AdventureWorks2008R2..Person', 3) AS 'Database Name';
SELECT PARSENAME('AdventureWorks2008R2..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)