OBJECT_ID(Transact-SQL)
업데이트: 2006년 7월 17일
스키마 범위 개체의 데이터베이스 개체 ID 번호를 반환합니다.
중요: |
---|
DDL 트리거와 같은 스키마 범위가 아닌 개체는 OBJECT_ID를 사용하여 쿼리할 수 없습니다. sys.objects 카탈로그 뷰에 없는 개체의 경우 해당 카탈로그 뷰를 쿼리하여 개체 ID 번호를 가져옵니다. 예를 들어 DDL 트리거의 개체 ID 번호를 반환하려면 SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog ' 를 사용하십시오. |
구문
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
object_name' [ ,'object_type' ] )
인수
- 'object_name'
사용할 개체입니다. object_name은 varchar 또는 nvarchar입니다. object_name이 varchar인 경우 nvarchar로 암시적으로 변환됩니다. 데이터베이스 및 스키마 이름 지정은 옵션입니다.
- 'object_type'
스키마 범위 개체 유형입니다. object_type은 varchar 또는 nvarchar입니다. object_type이 varchar인 경우 nvarchar로 암시적으로 변환됩니다. 개체 유형의 목록은 sys.objects(Transact-SQL)의 데이터 형식 열을 참조하십시오.
예외
오류 시 NULL을 반환합니다.
SQL Server 2005에서 사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECT_ID와 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다. 자세한 내용은 메타데이터 표시 유형 구성 및 메타데이터 표시 유형 문제 해결을 참조하십시오.
주의
시스템 함수에 대한 매개 변수가 옵션이면 현재 데이터베이스, 호스트 컴퓨터, 서버 사용자 또는 데이터베이스 사용자로 간주됩니다. 기본 제공 함수 다음에는 항상 괄호가 와야 합니다.
임시 테이블 이름이 지정되면 현재 데이터베이스가 tempdb가 아닌 경우 데이터베이스 이름이 임시 테이블 이름 앞에 와야 합니다. 예를 들어 SELECT OBJECT_ID('tempdb..#mytemptable')
처럼 사용해야 합니다.
시스템 함수는 WHERE 절의 선택 목록 및 식이 사용되는 어디서나 사용될 수 있습니다. 자세한 내용은 식(Transact-SQL) 및 WHERE(Transact-SQL)를 참조하십시오.
반환 형식
int
예
1. 지정한 개체의 개체 ID 반환
다음 예에서는 AdventureWorks
데이터베이스의 Production.WorkOrder
테이블에 관한 개체 ID를 반환합니다.
USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks.Production.WorkOrder') AS 'Object ID';
GO
2. 개체의 존재 여부 확인
다음 예에서는 테이블에 개체 ID가 있는지 확인해서 지정한 테이블이 있는지 확인합니다. 테이블이 있는 경우 삭제됩니다. 테이블이 없는 경우 DROP TABLE
문이 실행되지 않습니다.
USE AdventureWorks;
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'AdventureWorks');
SET @object_id = OBJECT_ID(N'AdventureWorks.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
참고 항목
참조
메타데이터 함수(Transact-SQL)
sys.objects(Transact-SQL)
sys.dm_db_index_operational_stats
OBJECT_DEFINITION(Transact-SQL)
OBJECT_NAME(Transact-SQL)
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 7월 17일 |
|
2006년 4월 14일 |
|