OBJECT_SCHEMA_NAME (Transact-SQL)OBJECT_SCHEMA_NAME (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve el nombre del esquema de la base de datos para los objetos de ámbito de esquema.Returns the database schema name for schema-scoped objects. Para obtener una lista de los objetos de ámbito de esquema, vea sys.objects (Transact-SQL).For a list of schema-scoped objects, see sys.objects (Transact-SQL).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )  

ArgumentosArguments

object_idobject_id
Es el identificador del objeto que se va a utilizar.Is the ID of the object to be used. object_id es de tipo int y se considera que se trata de un objeto de ámbito de esquema en la base de datos especificada o en el contexto de la base de datos actual.object_id is int and is assumed to be a schema-scoped object in the specified database, or in the current database context.

database_iddatabase_id
Identificador de la base de datos donde se va a buscar el objeto.Is the ID of the database where the object is to be looked up. database_id es int.database_id is int.

Tipos devueltosReturn Types

sysnamesysname

ExcepcionesExceptions

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.Returns NULL on error or if a caller does not have permission to view the object. Si la base de datos de destino tiene la opción AUTO_CLOSE establecida en ON, la función abrirá la base de datos.If the target database has the AUTO_CLOSE option set to ON, the function will open the database.

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Esto significa que las funciones integradas de emisión de metadatos, como OBJECT_SCHEMA_NAME, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto.This means that metadata-emitting, built-in functions such as OBJECT_SCHEMA_NAME may return NULL if the user does not have any permission on the object. Para obtener más información, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

PermisosPermissions

Requiere el permiso ANY en el objeto.Requires ANY permission on the object. Para especificar un identificador de base de datos, también se requiere el permiso CONNECT en la base de datos o se debe habilitar la cuenta de invitado.To specify a database ID, CONNECT permission to the database is also required, or the guest account must be enabled.

NotasRemarks

Las funciones del sistema se pueden usar en la lista de selección, en la cláusula WHERE y en cualquier lugar donde se permita una expresión.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Para obtener más información, vea Expressions y WHERE.For more information, see Expressions and WHERE.

El conjunto de resultados que devuelve esta función del sistema usa la intercalación de la base de datos actual.The result set returned by this system function uses the collation of the current database.

Si no se especifica database_id, Motor de base de datos de SQL ServerSQL Server Database Engine considera que object_id está en el contexto de la base de datos actual.If database_id is not specified, the Motor de base de datos de SQL ServerSQL Server Database Engine assumes that object_id is in the context of the current database. Una consulta que hace referencia a un parámetro object_id de otra base de datos devuelve NULL o resultados incorrectos.A query that references an object_id in another database returns NULL or incorrect results. Por ejemplo, en la siguiente consulta, el contexto de la base de datos actual es AdventureWorks2012AdventureWorks2012.For example, in the following query the context of the current database is AdventureWorks2012AdventureWorks2012. Motor de base de datosDatabase Engine intenta devolver un nombre de esquema de objetos para el identificador de objeto especificado en esa base de datos en lugar de en la base de datos especificada en la cláusula FROM de la consulta.The Motor de base de datosDatabase Engine tries to return an object schema name for the specified object ID in that database instead of the database specified in the FROM clause of the query. Por lo tanto, se devuelve información incorrecta.Therefore, incorrect information is returned.

SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)  
FROM master.sys.objects;  
  

En el ejemplo siguiente, se especifica el identificador de la base de datos master en la función OBJECT_SCHEMA_NAME y devuelve los resultados correctos.The following example specifies the database ID for the master database in the OBJECT_SCHEMA_NAME function and returns the correct results.

SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name  
FROM master.sys.objects;  
  

EjemplosExamples

A.A. Devolver el nombre del esquema de objetos y el nombre del objetoReturning the object schema name and object name

En el ejemplo siguiente se devuelve el nombre del esquema de objetos, el nombre del objeto y el texto SQL para todos los planes de consulta en caché que no sean instrucciones preparadas o ad hoc.The following example returns the object schema name, object name, and SQL text for all cached query plans that are not ad hoc or prepared statements.

SELECT DB_NAME(st.dbid) AS database_name,   
    OBJECT_SCHEMA_NAME(st.objectid, st.dbid) AS schema_name,  
    OBJECT_NAME(st.objectid, st.dbid) AS object_name,   
    st.text AS query_statement  
FROM sys.dm_exec_query_stats AS qs  
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st  
WHERE st.objectid IS NOT NULL;  
GO  

B.B. Devolver nombres de objetos de tres partesReturning three-part object names

En el ejemplo siguiente se devuelve el nombre del objeto, esquema o base de datos junto con todas las demás columnas de la vista de administración dinámica sys.dm_db_index_operational_stats de todos los objetos de todas las bases de datos.The following example returns the database, schema, and object name along with all other columns in the sys.dm_db_index_operational_stats dynamic management view for all objects in all databases.

SELECT QUOTENAME(DB_NAME(database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_SCHEMA_NAME(object_id, database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_NAME(object_id, database_id))  
    , *   
FROM sys.dm_db_index_operational_stats(null, null, null, null);  
GO  

Consulte tambiénSee Also

Funciones de metadatos (Transact-SQL) Metadata Functions (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL) OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL) OBJECT_ID (Transact-SQL)
OBJECT_NAME (Transact-SQL) OBJECT_NAME (Transact-SQL)
Elementos protegiblesSecurables