PARSENAME (Transact-SQL)

Devuelve la parte especificada de un nombre de objeto. Las partes de un objeto que se pueden recuperar son su nombre, el nombre del propietario, el nombre de la base de datos y el nombre del servidor.

Nota

La función PARSENAME no indica si existe un objeto con el nombre especificado. PARSENAME solo devuelve la parte especificada del nombre de objeto especificado.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

PARSENAME ('object_name',object_piece )

Argumentos

  • 'object_name'
    Es el nombre del objeto del que se desea recuperar la parte de objeto especificada. object_name es de tipo sysname. Este parámetro es un nombre de objeto completo opcionalmente. Si todas las partes del nombre de objeto están completas, este nombre puede tener cuatro partes: el nombre del servidor, de la base de datos, del propietario y del propio objeto.

  • object_piece
    Es la parte del objeto que se va a devolver. object_piece es de tipo int y puede tener estos valores:

    1 = Nombre del objeto

    2 = Nombre del esquema

    3 = Nombre de la base de datos

    4 = Nombre del servidor

Tipos de valor devueltos

nchar

Comentarios

PARSENAME devuelve NULL cuando se cumple una de las siguientes condiciones:

  • object_name o object_piece son NULL.

  • Se produce un error de sintaxis.

La parte del objeto solicitada tiene una longitud 0 y no es un identificador de Microsoft SQL Server válido. Un nombre de objeto de longitud cero hace que el nombre completo no sea válido. Para obtener más información, vea Usar identificadores como nombres de objeto.

Ejemplos

En el siguiente ejemplo se utiliza PARSENAME para devolver información acerca de la tabla Person de la base de datos AdventureWorks2008R2.

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';
GO

El conjunto de resultados es el siguiente.

Object Name

------------------------------

Person

(1 row(s) affected)

Schema Name

------------------------------

(null)

(1 row(s) affected)

Database Name

------------------------------

AdventureWorks2008R2

(1 row(s) affected)

Server Name

------------------------------

(null)

(1 row(s) affected)