OBJECT_ID(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

스키마 범위 개체의 데이터베이스 개체 ID를 반환합니다.

중요

DDL 트리거와 같은 스키마 범위가 아닌 개체는 OBJECT_ID를 사용하여 쿼리할 수 없습니다. sys.objects 카탈로그 뷰에 없는 개체의 경우 해당 카탈로그 뷰를 쿼리하여 개체 ID 번호를 가져옵니다. 예를 들어 DDL 트리거의 개체 ID 번호를 반환하려면 SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'를 사용하세요.

Transact-SQL 구문 표기 규칙

Syntax

OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

'object_name'
사용할 개체입니다. object_namevarchar 또는 nvarchar입니다. object_namevarchar인 경우 암시적으로 nvarchar로 변환됩니다. 데이터베이스 및 스키마 이름 지정은 옵션입니다.

'object_type'
스키마 범위 개체 형식입니다. object_typevarchar 또는 nvarchar입니다. object_typevarchar인 경우 암시적으로 nvarchar로 변환됩니다. 개체 형식의 목록은 sys.objects(Transact-SQL)type 열을 참조하세요.

반환 형식

int

예외

공간 인덱스의 경우 OBJECT_ID는 NULL을 반환합니다.

오류 발생 시 NULL을 반환합니다.

사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECT_ID와 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

설명

시스템 함수의 매개 변수가 선택 사항이면 현재 데이터베이스, 호스트 컴퓨터, 서버 사용자 또는 데이터베이스 사용자를 가정합니다. 기본 제공 함수 다음에는 항상 괄호가 와야 합니다.

임시 테이블 이름이 지정된 경우 현재 데이터베이스가 tempdb가 아니면 데이터베이스 이름이 임시 테이블 이름 앞에 와야 합니다. 예: SELECT OBJECT_ID('tempdb..#mytemptable')

시스템 함수는 선택 목록, WHERE 절 및 식이 허용되는 모든 곳에서 사용될 수 있습니다. 자세한 내용은 식(Transact-SQL)WHERE(Transact-SQL)를 참조하세요.

예제

A. 지정한 개체의 개체 ID 반환

다음 예제에서는 AdventureWorks2022 데이터베이스의 Production.WorkOrder 테이블에 대한 개체 ID를 반환합니다.

USE master;  
GO  
SELECT OBJECT_ID(N'AdventureWorks2022.Production.WorkOrder') AS 'Object ID';  
GO  

B. 개체의 존재 여부 확인

다음 예에서는 테이블에 개체 ID가 있는지 확인해서 지정한 테이블이 있는지 확인합니다. 테이블이 있는 경우 삭제됩니다. 테이블이 없는 경우 DROP TABLE 문이 실행되지 않습니다.

USE AdventureWorks2022;  
GO  
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL  
DROP TABLE dbo.AWBuildVersion;  
GO  

C. OBJECT_ID 사용하여 시스템 함수 매개 변수의 값을 지정

다음 예제에서는 sys.dm_db_index_operational_stats 함수를 사용하여 AdventureWorks2022 데이터베이스에 있는 테이블의 Person.Address 모든 인덱스 및 파티션에 대한 정보를 반환합니다.

참고 항목

이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

중요

Transact-SQL 함수 DB_ID 및 OBJECT_ID를 사용하여 매개 변수 값이 반환된 경우 유효한 ID가 반환되는지 항상 확인합니다. 존재하지 않는 이름을 입력하거나 철자를 잘못 입력하는 등의 이유로 데이터베이스 또는 개체 이름을 찾을 수 없으면 두 함수 모두 NULL을 반환합니다. sys.dm_db_index_operational_stats 함수는 NULL을 모든 데이터베이스나 모든 개체를 지정하는 와일드카드 값으로 해석합니다. 이는 의도하지 않은 결과일 수 있으므로 이 섹션의 예에서는 안전하게 데이터베이스 및 개체 ID를 확인하는 방법을 보여 줍니다.

DECLARE @db_id INT;  
DECLARE @object_id INT;  
SET @db_id = DB_ID(N'AdventureWorks2022');  
SET @object_id = OBJECT_ID(N'AdventureWorks2022.Person.Address');  
IF @db_id IS NULL   
  BEGIN;  
    PRINT N'Invalid database';  
  END;  
ELSE IF @object_id IS NULL  
  BEGIN;  
    PRINT N'Invalid object';  
  END;  
ELSE  
  BEGIN;  
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  
  END;  
GO  

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

D: 지정한 개체에 대한 개체 ID 반환

다음 예제에서는 AdventureWorksPDW2022 데이터베이스의 FactFinance 테이블에 대한 개체 ID를 반환합니다.

SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';  

참고 항목

메타데이터 함수(Transact-SQL)
sys.objects(Transact-SQL)
sys.dm_db_index_operational_stats(Transact-SQL)
OBJECT_DEFINITION(Transact-SQL)
OBJECT_NAME(Transact-SQL)