OBJECT_NAME(Transact-SQL)
업데이트: 2006년 12월 12일
스키마 범위 개체에 대한 데이터베이스 개체 이름을 반환합니다. 스키마 범위 개체의 목록을 보려면 sys.objects(Transact-SQL)를 참조하십시오.
구문
OBJECT_NAME ( object_id [, database_id ] )
인수
- object_id
사용할 개체의 ID입니다. object_id는 int이며 지정한 데이터베이스 또는 현재 데이터베이스 컨텍스트에서 스키마 범위 개체로 간주됩니다.
- database_id
조회할 개체가 있는 데이터베이스의 ID입니다. database_id는 int입니다.
반환 유형
sysname
예외
오류가 발생하거나 호출자가 개체를 볼 수 있는 권한을 갖고 있지 않으면 NULL을 반환합니다. 대상 데이터베이스에서 AUTO_CLOSE 옵션을 ON으로 설정하면 함수가 데이터베이스를 엽니다.
사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECT_NAME과 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다. 자세한 내용은 메타데이터 표시 유형 구성 및 메타데이터 표시 유형 문제 해결을 참조하십시오.
주의
시스템 함수는 SELECT 목록, WHERE 절 및 식이 허용되는 모든 곳에서 사용할 수 있습니다. 자세한 내용은 Expressions 및 WHERE를 참조하십시오.
이 시스템 함수에서 반환하는 값에서는 현재 데이터베이스의 데이터 정렬을 사용합니다.
SQL Server 데이터베이스 엔진에서는 object_id가 현재 데이터베이스 컨텍스트에 있다고 간주합니다. 다른 데이터베이스의 object_id를 참조하는 쿼리는 NULL 또는 잘못된 결과를 반환합니다. 예를 들어 다음 쿼리에서 현재 데이터베이스 컨텍스트는 AdventureWorks
데이터베이스입니다. 데이터베이스 엔진은 쿼리의 FROM 절에 지정된 데이터베이스 대신 이 데이터베이스에 지정된 개체 ID의 개체 이름을 반환하려고 시도합니다. 따라서 잘못된 정보가 반환됩니다.
USE AdventureWorks;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
서비스 팩 2에서는 데이터베이스 ID를 지정하여 다른 데이터베이스의 컨텍스트에서 개체 이름을 확인할 수 있습니다. 다음 예에서는 OBJECT_SCHEMA_NAME
함수에서 master
데이터베이스에 대한 데이터베이스 ID를 지정하고 올바른 결과를 반환합니다.
USE AdventureWorks;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
사용 권한
개체에 대한 ANY 권한이 필요합니다. 데이터베이스 ID를 지정하려면 데이터베이스에 대해 CONNECT 권한도 필요합니다. 그렇지 않으면 게스트 계정을 설정해야 합니다.
예
1. WHERE 절에서 OBJECT_NAME 사용
다음 예에서는 SELECT
문의 WHERE
절에서 OBJECT_NAME
으로 지정한 개체에 대한 열을 sys.objects
카탈로그 뷰에서 반환합니다.
USE AdventureWorks;
GO
DECLARE @MyID int;
SET @MyID = (SELECT OBJECT_ID('AdventureWorks.Production.Product',
'U'));
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@MyID);
GO
2. 개체 스키마 이름 및 개체 이름 반환
다음 예에서는 임시 문이나 준비된 문이 아닌 모든 캐시된 쿼리 계획에 대한 개체 스키마 이름, 개체 이름 및 SQL 텍스트를 반환합니다.
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
3. 세 부분으로 된 개체 이름 반환
다음 예에서는 모든 데이터베이스의 모든 개체에 대해 sys.dm_db_index_operational_stats
동적 관리 뷰의 모든 다른 열과 함께 데이터베이스, 스키마 및 개체 이름을 반환합니다.
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
참고 항목
참조
메타데이터 함수(Transact-SQL)
OBJECT_DEFINITION(Transact-SQL)
OBJECT_ID(Transact-SQL)
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 12월 12일 |
|
2006년 7월 17일 |
|