OBJECTPROPERTYEX(Transact-SQL)
업데이트: 2006년 12월 12일
현재 데이터베이스의 스키마 범위 개체에 대한 정보를 반환합니다. 이러한 개체의 목록을 보려면 sys.objects(Transact-SQL)를 참조하십시오. OBJECTPROPERTYEX는 DDL(데이터 정의 언어) 트리거와 이벤트 알림 같이 스키마 범위가 아닌 개체에 사용할 수 없습니다.
구문
OBJECTPROPERTYEX ( id , property )
인수
- id
현재 데이터베이스에 있는 개체의 ID를 나타내는 식입니다. id는 int이며 현재 데이터베이스 컨텍스트에서 스키마 범위 개체로 간주됩니다.
property
ID가 지정한 개체에 대해 반환되는 정보가 있는 식입니다. 반환 유형은 sql_variant입니다. 다음 표에서는 각 속성 값에 대한 기본 데이터 형식을 보여 줍니다.[!참고] 달리 언급하지 않는 한 property가 유효한 속성 이름이 아니거나, id가 유효한 개체 ID가 아니거나, id가 지정된 property에 대해 지원되지 않는 개체 유형이거나 또는 호출자가 개체의 메타데이터를 볼 수 있는 권한이 없는 경우에는 NULL이 반환됩니다.
속성 이름
반환 유형
sql_variant
예외
오류가 발생하거나 호출자가 개체를 볼 수 있는 권한을 갖고 있지 않으면 NULL을 반환합니다.
SQL Server 2005에서 사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECTPROPERTYEX와 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다. 자세한 내용은 메타데이터 표시 유형 구성 및 메타데이터 표시 유형 문제 해결을 참조하십시오.
주의
데이터베이스 엔진에서는 object_id가 현재 데이터베이스 컨텍스트에 있다고 가정합니다. 다른 데이터베이스의 object_id를 참조하는 쿼리는 NULL 또는 잘못된 결과를 반환합니다. 예를 들어 다음 쿼리에서 현재 데이터베이스 컨텍스트는 master
데이터베이스입니다. 데이터베이스 엔진은 쿼리에서 지정된 데이터베이스 대신 이 데이터베이스에서 지정된 object_id에 대한 속성 값을 반환하려고 합니다. vEmployee
뷰가 master
데이터베이스에 없으므로 쿼리는 잘못된 결과를 반환합니다.
USE master;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks.HumanResources.vEmployee'), 'IsView');
GO
OBJECTPROPERTYEX(view_id**,'IsIndexable'**)는 IsIndexable 속성 평가에 뷰 정의의 구문 분석, 정규화 및 부분 최적화를 요구하므로 상당히 많은 컴퓨터 리소스를 사용할 수 있습니다. IsIndexable 속성은 인덱싱할 수 있는 테이블이나 뷰를 식별하지만 특정 인덱스 키에 대한 요구가 만족되지 않으면 인덱스가 실제로 생성되지 못할 수 있습니다. 자세한 내용은 CREATE INDEX(Transact-SQL)를 참조하십시오.
OBJECTPROPERTYEX(table_id**,'TableHasActiveFulltextIndex'**)는 인덱스를 위해 적어도 하나의 테이블 열을 추가한 경우 값 1(true)을 반환합니다. 전체 텍스트 인덱싱은 첫 번째 열이 인덱싱용으로 추가되자 마자 채우기용으로 활성화됩니다.
메타데이터 표시 유형에 대한 제한 사항이 결과 집합에 적용됩니다. 자세한 내용은 메타데이터 표시 유형 구성을 참조하십시오.
예
1. 기본 개체 유형 찾기
다음 예에서는 AdventureWorks
데이터베이스의 Employee
테이블에 대한 SYNONYM MyEmployeeTable
을 만든 다음 SYNONYM에 대한 기본 유형을 반환합니다.
USE AdventureWorks;
GO
CREATE SYNONYM MyEmployeeTable FOR HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX ( object_id(N'MyEmployeeTable'), N'BaseType')AS [Base Type];
GO
결과 집합은 기본 개체의 기본 유형인 Employee
테이블이 사용자 테이블임을 나타냅니다.
Base Type
--------
U
2. 속성 값 반환
다음 예에서는 지정된 테이블의 UPDATE 트리거 수를 반환합니다.
USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'HumanResources.Employee'), N'TABLEUPDATETRIGGERCOUNT');
GO
3. FOREIGN KEY 제약 조건이 있는 테이블 찾기
다음 예에서는 TableHasForeignKey
속성을 사용하여 FOREIGN KEY 제약 조건이 있는 모든 테이블을 반환합니다.
USE AdventureWorks;
GO
SELECT name, object_id, schema_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTYEX(object_id, N'TableHasForeignKey') = 1
ORDER BY name;
GO
참고 항목
참조
CREATE SYNONYM(Transact-SQL)
메타데이터 함수(Transact-SQL)
OBJECT_DEFINITION(Transact-SQL)
OBJECT_ID(Transact-SQL)
OBJECT_NAME(Transact-SQL)
sys.objects(Transact-SQL)
ALTER AUTHORIZATION(Transact-SQL)
TYPEPROPERTY(Transact-SQL)
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 12월 12일 |
|
2006년 7월 17일 |
|
2005년 12월 5일 |
|