문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

OBJECT_ID(Transact-SQL)

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

중요 정보 중요

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

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

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

' object_name '

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

' object_type '

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

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

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

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

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

임시 테이블 이름이 지정되면 현재 데이터베이스가 tempdb가 아닌 경우 데이터베이스 이름이 임시 테이블 이름 앞에 와야 합니다. 예를 들면 다음과 같습니다. SELECT OBJECT_ID('tempdb..#mytemptable').

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

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

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

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

2.개체의 존재 여부 확인

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

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

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

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

중요 정보 중요

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'AdventureWorks2012');
SET @object_id = OBJECT_ID(N'AdventureWorks2012.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

커뮤니티 추가 항목

추가
표시: