Compartir vía


PARSENAME (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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

PARSENAME no indica si existe un objeto por el nombre especificado. PARSENAME simplemente devuelve la parte especificada del nombre de objeto especificado.

Convenciones de sintaxis de Transact-SQL

Sintaxis

PARSENAME ('object_name' , object_piece )

Argumentos

'object_name'

Parámetro que contiene el nombre del objeto para el que se va a recuperar la parte de objeto especificada. Este parámetro es un nombre de objeto calificado opcionalmente. Si todas las partes del nombre de objeto están completas, este nombre puede tener cuatro partes: el nombre del servidor, el de la base de datos, el del esquema y el del propio objeto.

Cada parte de la cadena "object_name" es sysname, que es equivalente a nvarchar(128) o 256 bytes. Si alguna parte de la cadena supera los 256 bytes, PARSENAME devuelve NULL para esa parte, ya que no es un sysname válido.

object_piece

Elemento de objeto que se va a devolver. object_piece es int y puede ser uno de estos valores:

Valor Description
1 Object name
2 Nombre de esquema
3 Nombre de la base de datos
4 Nombre del servidor

Tipos de valores devueltos

sysname

Comentarios

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

  • Object_name o object_piece es NULL.

  • Se produce un error de sintaxis.

  • La parte del objeto solicitado tiene una longitud de y no es un identificador válido de 0 SQL Server. Un nombre de objeto de longitud cero hace que el nombre completo no sea válido.

Ejemplos

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

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

Este es el conjunto de resultados.

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

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

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

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