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)