DATABASEPROPERTYEX(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
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
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의 이후 버전에서는 이 열이 제거됩니다. 새 개발 작업에서는 이 열을 사용하지 말고 이러한 열을 사용 중인 응용 프로그램을 가능한 한 빨리 수정하십시오.
IsInStandBy
데이터베이스가 로그 복원이 허용된 읽기 전용으로 온라인 상태입니다.
1 = TRUE
0 = FALSE
NULL = 입력이 잘못되었습니다.
기본 데이터 형식: int
IsLocalCursorsDefault
커서는 기본적으로 LOCAL로 선언됩니다.
1 = TRUE
0 = FALSE
NULL = 입력이 잘못되었습니다.
기본 데이터 형식: 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
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
참고 항목
참조
sys.database_files(Transact-SQL)