다음을 통해 공유


DATABASEPROPERTYEX(Transact-SQL)

SQL Server에서 지정한 데이터베이스에 대해 지정한 데이터베이스 옵션이나 속성의 현재 설정을 반환합니다.

적용 대상: SQL Server(SQL Server 2008부터 현재 버전), Azure SQL 데이터베이스.

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

구문

DATABASEPROPERTYEX ( database , property )

인수

  • database
    명명된 속성 정보를 반환할 데이터베이스의 이름을 나타내는 식입니다. database는 nvarchar(128)입니다.

  • property
    반환할 데이터베이스 속성의 이름을 나타내는 식입니다. property는 varchar(128)이며 다음 값 중 하나일 수 있습니다. 반환 형식은 sql_variant입니다. 다음 표에서는 각 속성 값에 대한 기본 데이터 형식을 보여 줍니다.

    참고

    데이터베이스가 시작되지 않은 경우 SQL Server가 메타데이터에서 값을 검색하지 않고 데이터베이스에 직접 액세스하여 검색하는 속성은 NULL을 반환합니다.즉, 데이터베이스에 대해 AUTO_CLOSE가 ON으로 설정된 경우 또는 데이터베이스가 오프라인인 경우입니다.

    속성

    설명

    반환 값

    Collation

    데이터베이스의 기본 데이터 정렬 이름입니다.

    데이터 정렬 이름

    NULL = 데이터베이스가 시작되지 않았습니다.

    기본 데이터 형식: nvarchar(128)

    ComparisonStyle

    데이터 정렬의 Windows 비교 스타일입니다. ComparisonStyle은 다음 값을 사용하여 계산된 비트맵입니다.

    스타일

    대/소문자 무시

    1

    악센트 무시

    2

    일본어 가나 무시

    65536

    전자/반자 무시

    131072

    예를 들어 기본값 196609는 대/소문자 무시, 일본어 가나 무시 및 전자/반자 무시 옵션이 결합된 결과입니다.

    비교 스타일을 반환합니다.

    모든 이진 데이터 정렬에 대해 0을 반환합니다.

    기본 데이터 형식: int

    버전

    데이터베이스 버전입니다.

    Web = 웹 버전 데이터베이스

    Business = 비즈니스 버전 데이터베이스

    NULL = 데이터베이스가 시작되지 않았습니다.

    기본 데이터 형식: nvarchar(64).

    적용 대상: Azure SQL 데이터베이스.

    IsAnsiNullDefault

    데이터베이스가 Null 값 허용에 대해 ISO 규칙을 따릅니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAnsiNullsEnabled

    Null에 대한 모든 비교는 알 수 없음이 됩니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAnsiPaddingEnabled

    비교 또는 삽입하기 전에 문자열이 동일한 길이만큼 채워집니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAnsiWarningsEnabled

    표준 오류 조건이 발생하면 오류 메시지나 경고 메시지가 나타납니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsArithmeticAbortEnabled

    쿼리 실행 시 오버플로나 0으로 나누기 오류가 발생하면 쿼리가 종료됩니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAutoClose

    마지막 사용자가 끝낸 후 데이터베이스가 완전히 종료되고 리소스가 해제됩니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAutoCreateStatistics

    쿼리 최적화 프로그램에서 필요할 경우 단일 열 통계를 작성하여 쿼리 성능을 향상시킵니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAutoCreateStatisticsIncremental

    가능하면 자동으로 만든 단일 열 통계는 증분합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    적용 대상: SQL Server 2014 - SQL Server 2014.

    IsAutoShrink

    데이터베이스 파일을 주기적으로 자동 축소합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsAutoUpdateStatistics

    쿼리에서 통계를 사용하여 기존 통계가 더 이상 최신 통계가 아니게 되면 쿼리 최적화 프로그램에서 기존 통계를 업데이트합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsCloseCursorsOnCommitEnabled

    트랜잭션이 커밋될 때 열린 커서를 닫습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsFulltextEnabled

    데이터베이스에 전체 텍스트 및 의미 체계 인덱싱을 사용하도록 설정되어 있습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    참고

    이 속성의 값은 아무런 영향을 주지 않습니다.사용자 데이터베이스는 전체 텍스트 검색을 사용하도록 항상 설정됩니다.SQL Server의 이후 버전에서는 이 열이 제거됩니다.새 개발 작업에서는 이 열을 사용하지 말고 이러한 열을 사용 중인 응용 프로그램을 가능한 한 빨리 수정하세요.

    적용 대상: SQL Server 2008 - SQL Server 2014

    IsInStandBy

    데이터베이스가 로그 복원이 허용된 읽기 전용으로 온라인 상태입니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsLocalCursorsDefault

    커서는 기본적으로 LOCAL로 선언됩니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsMemoryOptimizedElevateToSnapshotEnabled

    메모리 액세스에 최적화된 테이블은 세션 설정 TRANSACTION ISOLATION LEVEL이 낮은 격리 수준, READ COMMITTED 또는 READ UNCOMMITTED로 설정된 경우 SNAPSHOT 격리를 사용하여 액세스됩니다.

    적용 대상: SQL Server 2014 - SQL Server 2014.

    1 = TRUE

    0 = FALSE

    기본 데이터 형식: int

    IsMergePublished

    복제가 설치된 경우 데이터베이스의 테이블을 병합 복제용으로 게시할 수 있습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsNullConcat

    Null 연결 피연산자가 NULL을 반환합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsNumericRoundAbortEnabled

    식의 전체 자릿수에서 일부가 손실되면 오류가 발생합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsParameterizationForced

    PARAMETERIZATION 데이터베이스 SET 옵션이 FORCED입니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    IsQuotedIdentifiersEnabled

    식별자에 큰따옴표를 사용할 수 있습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsPublished

    복제가 설치된 경우 데이터베이스의 테이블을 스냅숏 또는 트랜잭션 복제용으로 게시할 수 있습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsRecursiveTriggersEnabled

    트리거를 재귀적으로 실행하도록 설정합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsSubscribed

    데이터베이스가 게시를 구독합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsSyncWithBackup

    데이터베이스는 게시된 데이터베이스이거나 배포 데이터베이스이므로 트랜잭션 복제를 중단하지 않고도 복원할 수 있습니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    IsTornPageDetectionEnabled

    SQL Server 데이터베이스 엔진에서 정전이나 기타 시스템 중단으로 인해 완료되지 않은 I/O 작업을 검색합니다.

    1 = TRUE

    0 = FALSE

    NULL = 입력이 잘못되었습니다.

    기본 데이터 형식: int

    LCID

    데이터 정렬의 Windows LCID(로캘 ID)입니다.

    LCID 값(10진수 형식)입니다.

    기본 데이터 형식: int

    MaxSizeInBytes

    최대 데이터베이스 크기(바이트)입니다.

    1073741824

    5368709120

    10737418240

    21474836480

    32212254720

    42949672960

    53687091200

    NULL = 데이터베이스가 시작되지 않았습니다.

    기본 데이터 형식: bigint

    적용 대상: Azure SQL 데이터베이스.

    Recovery

    데이터베이스의 복구 모델입니다.

    FULL = 전체 복구 모델

    BULK_LOGGED = 대량 로그 복구 모델

    SIMPLE = 단순 복구 모델

    기본 데이터 형식: nvarchar(128)

    SQLSortOrder

    이전 버전의 SQL Server에서 지원하는 SQL Server 정렬 순서 ID입니다.

    0 = 데이터베이스가 Windows 데이터 정렬을 사용합니다.

    >0 = SQL Server 정렬 순서 ID입니다.

    NULL = 입력이 잘못되었거나 데이터베이스가 시작되지 않았습니다.

    기본 데이터 형식: tinyint

    Status

    데이터베이스 상태입니다.

    ONLINE = 데이터베이스에서 쿼리를 실행할 수 있습니다.

    참고

    데이터베이스가 열려 있고 아직 복구되지 않았을 때는 ONLINE 상태가 반환될 수 있습니다.데이터베이스가 연결을 허용하는지 확인하려면 DATABASEPROPERTYEX의 데이터 정렬 속성을 쿼리합니다.데이터베이스 데이터 정렬이 null이 아닌 값을 반환하면 데이터베이스는 연결을 허용할 수 있습니다.AlwaysOn 데이터베이스의 경우 sys.dm_hadr_database_replica_states의 database_state 또는 database_state_desc 열을 쿼리합니다.

    OFFLINE = 데이터베이스가 명시적으로 오프라인 상태입니다.

    RESTORING = 데이터베이스를 복원 중입니다.

    RECOVERING =데이터베이스를 복구 중이며 아직 쿼리를 실행할 수 없습니다.

    SUSPECT = 데이터베이스가 복구되지 않았습니다.

    EMERGENCY = 데이터베이스가 응급 모드이며 읽기 전용 상태입니다. sysadmin 멤버만 액세스할 수 있습니다.

    기본 데이터 형식: nvarchar(128)

    Updateability

    데이터 수정 가능 여부를 나타냅니다.

    READ_ONLY = 데이터를 읽을 수 있으나 수정할 수는 없습니다.

    READ_WRITE = 데이터를 읽고 수정할 수 있습니다.

    기본 데이터 형식: nvarchar(128)

    UserAccess

    데이터베이스에 액세스할 수 있는 사용자를 나타냅니다.

    SINGLE_USER = 한 번에 한 명의 db_owner, dbcreator 또는 sysadmin 사용자만 액세스할 수 있습니다.

    RESTRICTED_USER = db_owner, dbcreator 및 sysadmin 역할의 멤버만 액세스할 수 있습니다.

    MULTI_USER = 모든 사용자가 액세스할 수 있습니다.

    기본 데이터 형식: nvarchar(128)

    Version

    데이터베이스가 만들어진 SQL Server 코드의 내부 버전 번호입니다. 정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

    버전 번호 = 데이터베이스가 열려 있습니다.

    NULL = 데이터베이스가 시작되지 않았습니다.

    기본 데이터 형식: int

반환 형식

sql_variant

예외

오류가 발생하거나 호출자가 개체를 볼 수 있는 권한을 갖고 있지 않으면 NULL을 반환합니다.

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

주의

DATABASEPROPERTYEX는 한 번에 하나의 속성 설정만 반환합니다. 여러 속성 설정을 표시하려면 sys.databases 카탈로그 뷰를 사용하세요.

1.AUTO_SHRINK 데이터베이스 옵션의 상태 검색

다음 예에서는 AdventureWorks 데이터베이스에 대한 AUTO_SHRINK 데이터베이스 옵션의 상태를 반환합니다.

SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'IsAutoShrink');

결과 집합은 다음과 같습니다. 이것은 AUTO_SHRINK가 해제되었음을 의미합니다.

------------------
0

2.데이터베이스의 기본 데이터 정렬 검색

다음 예에서는 AdventureWorks 데이터베이스에 대한 기본 데이터 정렬의 이름을 반환합니다.

SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'Collation');

결과 집합은 다음과 같습니다.

------------------------------
SQL_Latin1_General_CP1_CI_AI

참고 항목

참조

ALTER DATABASE(Transact-SQL)

sys.databases(Transact-SQL)

sys.database_files(Transact-SQL)

SERVERPROPERTY(Transact-SQL)

개념

데이터베이스 상태