OBJECT_NAME(Transact-SQL)OBJECT_NAME (Transact-SQL)

적용 대상: 예SQL Server 예Azure SQL Database 예Azure Synapse Analytics(SQL DW) 예병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

스키마 범위 개체에 대한 데이터베이스 개체 이름을 반환합니다.Returns the database object name for schema-scoped objects. 스키마 범위 개체 목록에 대해서는 sys.objects(Transact-SQL)를 참조하십시오.For a list of schema-scoped objects, see sys.objects (Transact-SQL).

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

OBJECT_NAME ( object_id [, database_id ] )  

인수Arguments

object_idobject_id
사용할 개체의 ID입니다.Is the ID of the object to be used. object_idint이며 지정한 데이터베이스 또는 현재 데이터베이스 컨텍스트에서 스키마 범위 개체로 간주됩니다.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
개체를 조회하려는 데이터베이스의 ID입니다.Is the ID of the database where the object is to be looked up. database_idint입니다.database_id is int.

반환 형식Return Types

sysnamesysname

예외Exceptions

오류가 발생하거나 호출자가 개체를 볼 수 있는 권한을 갖고 있지 않으면 NULL을 반환합니다.Returns NULL on error or if a caller does not have permission to view the object. 대상 데이터베이스에서 AUTO_CLOSE 옵션을 ON으로 설정하면 함수가 데이터베이스를 엽니다.If the target database has the AUTO_CLOSE option set to ON, the function will open the database.

사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECT_NAME과 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다.This means that metadata-emitting, built-in functions such as OBJECT_NAME may return NULL if the user does not have any permission on the object. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.For more information, see Metadata Visibility Configuration.

사용 권한Permissions

개체에 대한 ANY 권한이 필요합니다.Requires ANY permission on the object. 데이터베이스 ID를 지정하려면 데이터베이스에 대해 CONNECT 권한도 필요합니다. 그렇지 않으면 게스트 계정을 설정해야 합니다.To specify a database ID, CONNECT permission to the database is also required, or the guest account must be enabled.

RemarksRemarks

시스템 함수는 선택 목록, WHERE 절 및 식이 허용되는 모든 곳에서 사용될 수 있습니다.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. 자세한 내용은 WHERE를 참조하세요.For more information, see Expressions and WHERE.

이 시스템 함수에서 반환하는 값에서는 현재 데이터베이스의 데이터 정렬을 사용합니다.The value returned by this system function uses the collation of the current database.

기본적으로 SQL Server 데이터베이스 엔진SQL Server Database Engine에서는 object_id가 현재 데이터베이스 컨텍스트에 있다고 간주합니다.By default, the SQL Server 데이터베이스 엔진SQL Server Database Engine assumes that object_id is in the context of the current database. 다른 데이터베이스의 object_id를 참조하는 쿼리는 NULL 또는 잘못된 결과를 반환합니다.A query that references an object_id in another database returns NULL or incorrect results. 예를 들어 다음 쿼리에서 현재 데이터베이스 컨텍스트는 AdventureWorks2012AdventureWorks2012 데이터베이스입니다.For example, in the following query the context of the current database is AdventureWorks2012AdventureWorks2012. 데이터베이스 엔진Database Engine은 쿼리의 FROM 절에 지정된 데이터베이스 대신 이 데이터베이스에 지정된 개체 ID의 개체 이름을 반환하려고 시도합니다.The 데이터베이스 엔진Database Engine tries to return an object name for the specified object ID in that database instead of the database specified in the FROM clause of the query. 따라서 잘못된 정보가 반환됩니다.Therefore, incorrect information is returned.

USE AdventureWorks2012;  
GO  
SELECT DISTINCT OBJECT_NAME(object_id)  
FROM master.sys.objects;  
GO  

데이터베이스 ID를 지정하여 다른 데이터베이스의 컨텍스트에서 개체 이름을 확인할 수 있습니다.You can resolve object names in the context of another database by specifying a database ID. 다음 예에서는 master 함수에서 OBJECT_SCHEMA_NAME 데이터베이스에 대한 데이터베이스 ID를 지정하고 올바른 결과를 반환합니다.The following example specifies the database ID for the master database in the OBJECT_SCHEMA_NAME function and returns the correct results.

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

Examples

1.A. WHERE 절에서 OBJECT_NAME 사용Using OBJECT_NAME in a WHERE clause

다음 예에서는 sys.objects 문의 OBJECT_NAME 절에서 WHERE으로 지정한 개체에 대한 열을 SELECT 카탈로그 뷰에서 반환합니다.The following example returns columns from the sys.objects catalog view for the object specified by OBJECT_NAME in the WHERE clause of the SELECT statement.

USE AdventureWorks2012;  
GO  
DECLARE @MyID int;  
SET @MyID = (SELECT OBJECT_ID('AdventureWorks2012.Production.Product',  
    'U'));  
SELECT name, object_id, type_desc  
FROM sys.objects  
WHERE name = OBJECT_NAME(@MyID);  
GO  

2.B. 개체 스키마 이름 및 개체 이름 반환Returning the object schema name and object name

다음 예에서는 임시 문이나 준비된 문이 아닌 모든 캐시된 쿼리 계획에 대한 개체 스키마 이름, 개체 이름 및 SQL 텍스트를 반환합니다.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_text  
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  

C.C. 세 부분으로 된 개체 이름 반환Returning three-part object names

다음 예에서는 모든 데이터베이스의 모든 개체에 대해 sys.dm_db_index_operational_stats 동적 관리 뷰의 모든 다른 열과 함께 데이터베이스, 스키마 및 개체 이름을 반환합니다.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  

예제: Azure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW)병렬 데이터 웨어하우스Parallel Data WarehouseExamples: Azure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW) and 병렬 데이터 웨어하우스Parallel Data Warehouse

D.D. WHERE 절에서 OBJECT_NAME 사용Using OBJECT_NAME in a WHERE clause

다음 예에서는 sys.objects 문의 OBJECT_NAME 절에서 WHERE으로 지정한 개체에 대한 열을 SELECT 카탈로그 뷰에서 반환합니다.The following example returns columns from the sys.objects catalog view for the object specified by OBJECT_NAME in the WHERE clause of the SELECT statement. (개체 번호(아래 예에서 274100017)는 달라집니다.(Your object number (274100017 in the example below) will be different. 이 예를 테스트하려면 각자의데이터베이스에서 SELECT name, object_id FROM sys.objects;를 실행하여 유효한 개체 번호를 조회하세요.)To test this example, look up a valid object number by executing SELECT name, object_id FROM sys.objects; in your database.)

SELECT name, object_id, type_desc  
FROM sys.objects  
WHERE name = OBJECT_NAME(274100017);  

참고 항목See Also

메타데이터 함수(Transact-SQL) Metadata Functions (Transact-SQL)
OBJECT_DEFINITION(Transact-SQL) OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID(Transact-SQL)OBJECT_ID (Transact-SQL)