OBJECTPROPERTYEX(Transact-SQL)

업데이트: 2006년 12월 12일

현재 데이터베이스의 스키마 범위 개체에 대한 정보를 반환합니다. 이러한 개체의 목록을 보려면 sys.objects(Transact-SQL)를 참조하십시오. OBJECTPROPERTYEX는 DDL(데이터 정의 언어) 트리거와 이벤트 알림 같이 스키마 범위가 아닌 개체에 사용할 수 없습니다.

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

구문

OBJECTPROPERTYEX ( id , property )

인수

  • id
    현재 데이터베이스에 있는 개체의 ID를 나타내는 식입니다. idint이며 현재 데이터베이스 컨텍스트에서 스키마 범위 개체로 간주됩니다.
  • 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)

관련 자료

사용자와 스키마 분리

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 서비스 팩 2에서 사용할 수 있는 TableHasVarDecimalStorageFormat 속성을 추가했습니다.

2006년 7월 17일

새로운 내용
  • 예외 섹션을 추가했습니다.

2005년 12월 5일

변경된 내용
  • IsTableFunctionIsScalarFunction 속성의 정의를 수정했습니다.
  • 예 3을 수정했습니다.