ALTER DATABASE SET 옵션(Transact-SQL)

이 항목에서는 데이터베이스 옵션 설정과 관련된 ALTER DATABASE 구문을 제공합니다. 다른 ALTER DATABASE 구문은 ALTER DATABASE(Transact-SQL)를 참조하십시오. 데이터베이스 미러링, AlwaysOn 가용성 그룹 및 호환성 수준도 SET 옵션이지만 길이상 이러한 옵션은 별도의 항목으로 설명합니다. 자세한 내용은 ALTER DATABASE 데이터베이스 미러링(Transact-SQL), ALTER DATABASE SET HADR(Transact-SQL)ALTER DATABASE 호환성 수준(Transact-SQL)을 참조하십시오.

[!참고]

많은 데이터베이스 설정 옵션은 현재 세션에 대해 SET 문(Transact-SQL)을 사용하여 구성할 수 있으며 연결된 경우 일반적으로 응용 프로그램에 의해 구성됩니다. 세션 수준 설정 옵션은 ALTER DATABASE SET 값을 재정의합니다. 아래에 설명된 데이터베이스 옵션은 다른 설정 옵션 값을 명시적으로 제공하지 않는 세션에 대해 설정할 수 있는 값입니다.

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

구문

ALTER DATABASE { database_name  | CURRENT }
SET 
{
    <optionspec> [ ,... n ] [ WITH <termination> ] 
}

<optionspec> ::= 
{
    <auto_option> 
  | <change_tracking_option> 
  | <containment_option> 
  | <cursor_option> 
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option> 
  | <db_user_access_option> 
  | <external_access_option>
  | FILESTREAM ( <FILESTREAM_option> )
  | <HADR_options>
  | <parameterization_option>
  | <recovery_option> 
  | <target_recovery_time_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option> 
}

<auto_option> ::= 
{
    AUTO_CLOSE { ON | OFF } 
  | AUTO_CREATE_STATISTICS { ON | OFF } 
  | AUTO_SHRINK { ON | OFF } 
  | AUTO_UPDATE_STATISTICS { ON | OFF } 
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING 
   { 
       = OFF
     | = ON [ ( <change_tracking_option_list > [,... n] ) ] 
     | ( <change_tracking_option_list> [,... n ] )
   }
}

   <change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF } 
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<containment_option> ::= 
   CONTAINMENT = { NONE | PARTIAL }

<cursor_option> ::= 
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF } 
  | CURSOR_DEFAULT { LOCAL | GLOBAL } 
}

<database_mirroring_option>
  ALTER DATABASE Database Mirroring 

<date_correlation_optimization_option> ::=
    DATE_CORRELATION_OPTIMIZATION { ON | OFF }

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF }

<db_state_option> ::=
    { ONLINE | OFFLINE | EMERGENCY }

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
    { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
  | DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | NESTED_TRIGGERS = { OFF | ON }
  | TRANSFORM_NOISE_WORDS = { OFF | ON }
  | TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
  | DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
  ALTER DATABASE SET HADR 

<parameterization_option> ::=
    PARAMETERIZATION { SIMPLE | FORCED }

<recovery_option> ::= 
{
    RECOVERY { FULL | BULK_LOGGED | SIMPLE } 
  | TORN_PAGE_DETECTION { ON | OFF }
  | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}

<target_recovery_time_option> ::=
    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

<service_broker_option> ::=
{
    ENABLE_BROKER
  | DISABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
  | HONOR_BROKER_PRIORITY { ON | OFF}
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
}
<sql_option> ::= 
{
    ANSI_NULL_DEFAULT { ON | OFF } 
  | ANSI_NULLS { ON | OFF } 
  | ANSI_PADDING { ON | OFF } 
  | ANSI_WARNINGS { ON | OFF } 
  | ARITHABORT { ON | OFF } 
  | COMPATIBILITY_LEVEL = { 90 | 100 | 110 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF } 
  | NUMERIC_ROUNDABORT { ON | OFF } 
  | QUOTED_IDENTIFIER { ON | OFF } 
  | RECURSIVE_TRIGGERS { ON | OFF } 
}

<termination>  ::= 
{
    ROLLBACK AFTER integer [ SECONDS ] 
  | ROLLBACK IMMEDIATE 
  | NO_WAIT
}

인수

  • database_name | CURRENT
    수정할 데이터베이스의 이름입니다. CURRENT를 지정하면 현재 데이터베이스에서 동작이 수행됩니다. 모든 컨텍스트의 모든 옵션에서 CURRENT가 지원되는 것은 아닙니다. CURRENT가 실패할 경우 데이터베이스 이름을 지정해야 합니다.

<auto_option> ::=

자동 옵션을 제어합니다.

  • AUTO_CLOSE { ON | OFF }

    • ON
      마지막 사용자가 사용을 끝낸 후 데이터베이스가 종료되고 해당 리소스가 해제됩니다.

      사용자가 데이터베이스를 다시 사용하려고 하면(예: USE database_name 문 사용) 데이터베이스가 자동으로 다시 열립니다. AUTO_CLOSE가 ON으로 설정되어 있는 상태에서 데이터베이스가 완전히 종료된 경우 다음 번에 사용자가 데이터베이스 엔진을 다시 시작하고 데이터베이스 사용을 시도할 때까지 데이터베이스는 다시 열리지 않습니다.

    • OFF
      마지막 사용자가 사용을 끝낸 후에도 데이터베이스는 열려 있는 상태가 됩니다.

    AUTO_CLOSE 옵션을 사용하면 데이터베이스 파일을 일반 파일처럼 다룰 수 있기 때문에 데스크톱 데이터베이스에서 유용합니다. 데이터베이스 파일을 이동하거나 복사하여 백업을 만들 수도 있고 다른 사용자에게 전자 메일로 보낼 수도 있습니다. AUTO_CLOSE 프로세스는 비동기 프로세스이므로 데이터베이스를 반복적으로 열고 닫아도 성능이 저하되지 않습니다.

    [!참고]

    포함된 데이터베이스에서는 AUTO_CLOSE 옵션을 사용할 수 없습니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_close_on 열이나 DATABASEPROPERTYEX 함수의 IsAutoClose 속성을 검사하여 확인할 수 있습니다.

    [!참고]

    AUTO_CLOSE가 ON으로 설정되어 있으면 sys.databases 카탈로그 뷰의 일부 열과 DATABASEPROPERTYEX 함수는 데이터베이스에서 데이터를 검색할 수 없는 경우 NULL을 반환합니다. 이 문제를 해결하려면 USE 문을 실행하여 데이터베이스를 엽니다.

    [!참고]

    데이터베이스 미러링을 위해서는 AUTO_CLOSE가 OFF로 설정되어 있어야 합니다.

    데이터베이스가 AUTOCLOSE = ON으로 설정되어 있으면 자동 데이터베이스 종료를 시작하는 작업이 SQL Server 인스턴스에 대한 계획 캐시를 삭제합니다. 계획 캐시를 삭제하면 모든 후속 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하될 수 있습니다. SQL Server 2005 서비스 팩 2 이상에서는 계획 캐시의 삭제된 각 캐시스토어에 대해 SQL Server 오류 로그에 "데이터베이스 유지 관리 또는 재구성 작업으로 인해 '%s' 캐시스토어(계획 캐시의 일부)에 대한 캐시스토어 플러시가 SQL Server에서 %d번 발견되었습니다"라는 정보 메시지가 포함됩니다. 이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.

  • AUTO_CREATE_STATISTICS { ON | OFF }

    • ON
      쿼리 최적화 프로그램에서 필요에 따라 쿼리 조건자의 단일 열에 대한 통계를 생성하여 쿼리 계획 및 쿼리 성능을 향상시킵니다. 쿼리 최적화 프로그램에서 쿼리를 컴파일할 때 이러한 단일 열 통계가 생성됩니다. 단일 열 통계는 기존 통계 개체의 첫 번째 열이 아닌 열에 대해서만 생성됩니다.

      기본값은 ON입니다. 대부분의 데이터베이스의 경우 기본 설정을 사용하는 것이 좋습니다.

    • OFF
      쿼리 최적화 프로그램에서 쿼리를 컴파일할 때 쿼리 조건자의 단일 열에 대한 통계를 생성하지 않습니다. 이 옵션을 OFF로 설정하면 최적이 아닌 쿼리 계획을 사용하므로 쿼리 성능이 저하됩니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_create_stats_on 열이나 DATABASEPROPERTYEX 함수의 IsAutoCreateStatistics 속성을 검사하여 확인할 수 있습니다.

    자세한 내용은 통계의 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하십시오.

  • AUTO_SHRINK { ON | OFF }

    • ON
      데이터베이스 파일이 주기적인 축소의 후보가 됩니다.

      데이터 파일과 로그 파일 모두 자동으로 축소될 수 있습니다. AUTO_SHRINK는 데이터베이스가 단순 복구 모델로 설정되거나 로그가 백업된 경우에만 트랜잭션 로그의 크기를 축소합니다. 이 옵션이 OFF로 설정되면 사용되지 않는 공간을 정기적으로 검사하는 동안 데이터베이스 파일을 자동으로 축소하지 않습니다.

      AUTO_SHRINK 옵션은 파일에서 사용되지 않는 공간이 25% 이상일 때 파일을 축소합니다. 파일은 파일의 25%가 사용되지 않을 때의 크기 또는 파일이 만들어졌을 때의 크기 중 더 큰 크기로 축소됩니다.

      읽기 전용 데이터베이스는 축소할 수 없습니다.

    • OFF
      사용되지 않는 공간을 정기적으로 검사하는 동안에는 데이터베이스 파일을 자동으로 축소하지 않습니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_shrink_on 열이나 DATABASEPROPERTYEX 함수의 IsAutoShrink 속성을 검사하여 확인할 수 있습니다.

    [!참고]

    포함된 데이터베이스에서는 AUTO_SHRINK 옵션을 사용할 수 없습니다.

  • AUTO_UPDATE_STATISTICS { ON | OFF }

    • ON
      쿼리에서 통계를 사용하거나 통계가 최신이 아닐 때 쿼리 최적화 프로그램에서 통계를 업데이트하도록 지정합니다. 삽입, 업데이트, 삭제 또는 병합 작업을 통해 테이블이나 인덱싱된 뷰의 데이터 분포가 변경되면 통계 내용이 더 이상 최신이 아니게 됩니다. 쿼리 최적화 프로그램은 마지막 통계 업데이트 이후 데이터 수정 개수를 계산한 다음 이 수를 임계값과 비교하여 통계가 최신이 아니게 된 시점을 결정합니다. 임계값은 테이블 또는 인덱싱된 뷰의 행 수를 기준으로 합니다.

      쿼리 최적화 프로그램은 쿼리를 컴파일하기 전과 캐시된 쿼리 계획을 실행하기 전에 최신이 아닌 통계가 있는지를 확인합니다. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 쿼리 조건자의 열, 테이블 및 인덱싱된 뷰를 사용하여 어떤 통계가 최신이 아닌지 결정합니다. 데이터베이스 엔진에서는 캐시된 쿼리 계획을 실행하기 전에 쿼리 계획에서 최신 통계가 참조되는지 확인합니다.

      AUTO_UPDATE_STATISTICS 옵션은 인덱스에 대해 생성된 통계, 쿼리 조건자의 단일 열 및 CREATE STATISTICS 문을 사용하여 생성된 통계에 적용됩니다. 이 옵션은 또한 필터링된 통계에도 적용됩니다.

      기본값은 ON입니다. 대부분의 데이터베이스의 경우 기본 설정을 사용하는 것이 좋습니다.

      AUTO_UPDATE_STATISTICS_ASYNC 옵션을 사용하여 통계를 동기적으로 업데이트할지 또는 비동기적으로 업데이트할지를 지정합니다.

    • OFF
      쿼리에서 통계를 사용하거나 통계가 최신이 아닐 때 쿼리 최적화 프로그램에서 통계를 업데이트하지 않도록 지정합니다. 이 옵션을 OFF로 설정하면 최적이 아닌 쿼리 계획을 사용하므로 쿼리 성능이 저하됩니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_update_stats_on 열이나 DATABASEPROPERTYEX 함수의 IsAutoUpdateStatistics 속성을 검사하여 확인할 수 있습니다.

    자세한 내용은 통계의 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하십시오.

  • AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }

    • ON
      AUTO_UPDATE_STATISTICS 옵션에 대한 통계 업데이트를 비동기로 지정합니다. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 통계 업데이트가 완료될 때까지 기다리지 않습니다.

      이 옵션을 ON으로 설정해도 AUTO_UPDATE_STATISTICS가 ON으로 설정되어 있지 않으면 영향을 주지 않습니다.

      기본적으로 AUTO_UPDATE_STATISTICS_ASYNC 옵션은 OFF로 설정되므로 쿼리 최적화 프로그램은 통계를 동기적으로 업데이트합니다.

    • OFF
      AUTO_UPDATE_STATISTICS 옵션에 대한 통계 업데이트를 동기로 지정합니다. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 통계 업데이트가 완료될 때까지 기다립니다.

      이 옵션을 OFF로 설정해도 AUTO_UPDATE_STATISTICS가 ON으로 설정되어 있지 않으면 영향을 주지 않습니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_update_stats_async_on 열을 검사하여 확인할 수 있습니다.

    동기 통계 업데이트를 사용하는 경우 또는 비동기 통계 업데이트를 사용하는 경우에 대한 자세한 설명은 통계에서 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하십시오.

<change_tracking_option> ::=

변경 내용 추적 옵션을 제어합니다. 변경 내용 추적을 설정 또는 해제하고 옵션을 설정 또는 변경할 수 있습니다. 예를 보려면 이 항목의 뒤 부분에 나오는 예 섹션을 참조하십시오.

  • ON
    데이터베이스에 변경 내용 추적을 설정합니다. 변경 내용 추적을 설정하면 AUTO CLEANUP 및 CHANGE RETENTION 옵션도 설정할 수 있습니다.

  • AUTO_CLEANUP = { ON | OFF }

    • ON
      지정된 보존 기간 후에 변경 내용 추적 정보가 자동으로 제거됩니다.

    • OFF
      변경 내용 추적 데이터가 데이터베이스에서 제거되지 않습니다.

  • CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }
    데이터베이스에 변경 내용 추적 정보를 보존하는 최소 기간을 지정합니다. 데이터는 AUTO_CLEANUP 값이 ON일 때만 제거됩니다.

    retention_period는 보존 기간의 숫자 부분을 지정하는 정수입니다.

    기본 보존 기간은 2일입니다. 최소 보존 기간은 1분입니다.

  • OFF
    데이터베이스에서 변경 내용 추적을 해제합니다. 데이터베이스에서 변경 내용 추적을 해제하려면 모든 테이블에서 변경 내용 추적을 해제해야 합니다.

<containment_option> ::=

데이터베이스 포함 옵션을 제어합니다.

  • CONTAINMENT = { NONE | PARTIAL}

    • NONE
      데이터베이스가 포함된 데이터베이스가 아닙니다.

    • PARTIAL
      데이터베이스가 포함된 데이터베이스입니다. 데이터베이스에 복제, 변경 데이터 캡처 또는 변경 내용 추적을 사용하도록 설정되어 있는 경우 데이터베이스를 부분적으로 포함된 데이터베이스로 설정하면 실패합니다. 실패 후에는 오류 검사가 중지됩니다. 포함된 데이터베이스에 대한 자세한 내용은 포함된 데이터베이스를 참조하십시오.

<cursor_option> ::=

커서 옵션을 제어합니다.

  • CURSOR_CLOSE_ON_COMMIT { ON | OFF }

    • ON
      트랜잭션이 커밋되거나 롤백될 때 열린 모든 커서가 닫힙니다.

    • OFF
      트랜잭션 커밋 시에는 커서가 그대로 열려 있으나 트랜잭션 롤백 시에는 INSENSITIVE 또는 STATIC으로 정의된 것을 제외한 모든 커서가 닫힙니다.

    SET 문을 사용하여 설정한 연결 수준 설정은 CURSOR_CLOSE_ON_COMMIT의 기본 데이터베이스 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 CURSOR_CLOSE_ON_COMMIT을 OFF로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET CURSOR_CLOSE_ON_COMMIT(Transact-SQL)을 참조하십시오.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_cursor_close_on_commit_on 열이나 DATABASEPROPERTYEX 함수의 IsCloseCursorsOnCommitEnabled 속성을 검사하여 확인할 수 있습니다.

  • CURSOR_DEFAULT { LOCAL | GLOBAL }
    커서 범위가 LOCAL인지 GLOBAL인지 여부를 제어합니다.

    • LOCAL
      LOCAL을 지정하고 커서를 만들 때 GLOBAL로 정의하지 않은 경우 커서의 범위는 커서가 생성된 일괄 처리, 저장 프로시저 또는 트리거에 로컬로 적용됩니다. 커서 이름은 그 범위 내에서만 유효합니다. 일괄 처리, 저장 프로시저, 트리거의 로컬 커서 변수 또는 저장 프로시저의 OUTPUT 매개 변수에서 커서를 참조할 수 있습니다. 커서는 OUTPUT 매개 변수에서 다시 전달되지 않는 한 일괄 처리, 저장 프로시저 또는 트리거가 종료될 때 암시적으로 할당이 취소됩니다. OUTPUT 매개 변수에서 커서가 다시 전달되면 커서를 참조하는 마지막 변수의 할당이 취소되거나 범위를 벗어날 때 커서의 할당이 취소됩니다.

    • GLOBAL
      GLOBAL을 지정하고 커서를 만들 때 LOCAL로 정의하지 않은 경우 커서의 범위는 연결에 대해 전역으로 적용됩니다. 연결되어 실행하는 모든 저장 프로시저 또는 일괄 처리에서 커서 이름을 참조할 수 있습니다.

    커서는 연결이 끊어질 때만 암시적으로 할당이 취소됩니다. 자세한 내용은 DECLARE CURSOR(Transact-SQL)를 참조하십시오.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_local_cursor_default 열이나 DATABASEPROPERTYEX 함수의 IsLocalCursorsDefault 속성을 검사하여 확인할 수 있습니다.

<database_mirroring>

인수에 대한 설명은 ALTER DATABASE 데이터베이스 미러링(Transact-SQL)을 참조하십시오.

<date_correlation_optimization_option> ::=

date_correlation_optimization 옵션을 제어합니다.

  • DATE_CORRELATION_OPTIMIZATION { ON | OFF }

    • ON
      SQL Server는 데이터베이스 내에서 FOREIGN KEY 제약 조건으로 연결되고 datetime 열이 있는 두 테이블 간의 상관 관계 통계를 유지합니다.

    • OFF
      상관 관계 통계를 유지하지 않습니다.

    DATE_CORRELATION_OPTIMIZATION을 ON으로 설정하려면 ALTER DATABASE 문을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 연결이 없어야 합니다. 그런 후에는 여러 개의 연결이 지원됩니다.

    이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_date_correlation_on 열을 검사하여 확인할 수 있습니다.

<db_encryption_option> ::=

데이터베이스 암호화 상태를 제어합니다.

  • ENCRYPTION {ON | OFF}
    데이터베이스를 암호화하거나(ON) 암호화하지 않도록(OFF) 설정합니다. 데이터베이스 암호화에 대한 자세한 내용은 투명한 데이터 암호화를 참조하십시오.

데이터베이스 수준에서 암호화가 설정되면 모든 파일 그룹이 암호화됩니다. 새로운 파일 그룹은 암호화된 속성을 상속합니다. 데이터베이스의 파일 그룹이 READ ONLY로 설정되면 데이터베이스 암호화 작업이 실패합니다.

sys.dm_database_encryption_keys 동적 관리 뷰를 사용하면 데이터베이스의 암호화 상태를 확인할 수 있습니다.

<db_state_option> ::=

데이터베이스의 상태를 제어합니다.

  • OFFLINE
    데이터베이스가 닫히고 완전히 종료되어 오프라인 상태로 표시됩니다. 데이터베이스가 오프라인 상태인 동안에는 데이터베이스를 수정할 수 없습니다.

  • ONLINE
    데이터베이스가 열려 사용할 수 있게 됩니다.

  • EMERGENCY
    데이터베이스가 READ_ONLY로 표시되며 로깅 설정이 해제되고 액세스가 sysadmin 고정 서버 역할의 멤버로 제한됩니다. EMERGENCY는 주로 문제 해결을 위해 사용됩니다. 예를 들어 손상된 로그 파일로 인해 주의 대상으로 표시된 데이터베이스를 EMERGENCY 상태로 설정할 수 있습니다. 이 경우 시스템 관리자는 읽기 전용으로 데이터베이스에 액세스할 수 있습니다. sysadmin 고정 서버 역할의 멤버만 데이터베이스를 EMERGENCY 상태로 설정할 수 있습니다.

[!참고]

사용 권한: 데이터베이스를 오프라인 또는 응급 상태로 변경하려면 주제 데이터베이스에 대한 ALTER DATABASE 권한이 필요합니다. 데이터베이스를 오프라인 상태에서 온라인 상태로 전환하려면 서버 수준 ALTER ANY DATABASE 권한이 필요합니다.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 state 및 state_desc 열이나 DATABASEPROPERTYEX 함수의 Status 속성을 검사하여 확인할 수 있습니다. 자세한 내용은 데이터베이스 상태를 참조하십시오.

RESTORING으로 표시된 데이터베이스는 OFFLINE, ONLINE 또는 EMERGENCY로 설정할 수 없습니다. 활성 복원 작업 중이나 데이터베이스 또는 로그 파일의 복원 작업이 손상된 백업 파일로 인해 실패할 경우 데이터베이스가 RESTORING 상태일 수 있습니다.

<db_update_option> ::=

데이터베이스에 대한 업데이트 허용 여부를 제어합니다.

  • READ_ONLY
    사용자는 데이터베이스에서 데이터를 읽을 수 있지만 수정은 할 수 없습니다.

    [!참고]

    쿼리 성능을 향상시키려면 데이터베이스를 READ_ONLY로 설정하기 전에 통계를 업데이트하십시오. 데이터베이스를 READ_ONLY로 설정한 후에 추가 통계가 필요한 경우 데이터베이스 엔진에서 tempdb에 통계를 만듭니다. 읽기 전용 데이터베이스의 통계에 대한 자세한 내용은 통계를 참조하십시오.

  • READ_WRITE
    데이터베이스에서 읽기와 쓰기 작업을 할 수 있습니다.

이 상태를 변경하려면 데이터베이스에 대해 배타적 액세스 권한이 있어야 합니다. 자세한 내용은 SINGLE_USER 절을 참조하십시오.

<db_user_access_option> ::=

데이터베이스에 대한 사용자 액세스를 제어합니다.

  • SINGLE_USER
    한 번에 한 사용자만 데이터베이스에 액세스할 수 있도록 지정합니다. SINGLE_USER가 지정된 상태에서 다른 사용자들이 데이터베이스에 연결되어 있는 경우 모든 사용자가 지정된 데이터베이스와의 연결을 끊을 때까지 ALTER DATABASE 문이 차단됩니다. 이 동작을 무시하는 방법은 WITH <termination> 절을 참조하십시오.

    옵션을 설정한 사용자가 로그오프해도 데이터베이스는 SINGLE_USER 모드로 유지됩니다. 이때 다른 한 명의 사용자만 데이터베이스에 연결할 수 있습니다.

    데이터베이스를 SINGLE_USER로 설정하기 전에 AUTO_UPDATE_STATISTICS_ASYNC 옵션이 OFF로 설정되어 있는지 확인합니다. 이 옵션이 ON으로 설정되면 통계 업데이트에 사용되는 백그라운드 스레드가 데이터베이스에 대한 연결을 점유하므로 사용자는 단일 사용자 모드로 데이터베이스에 액세스할 수 없습니다. 이 옵션의 상태를 보려면 sys.databases 카탈로그 뷰의 is_auto_update_stats_async_on 열을 쿼리합니다. 옵션이 ON으로 설정되어 있으면 다음 태스크를 수행합니다.

    1. AUTO_UPDATE_STATISTICS_ASYNC를 OFF로 설정합니다.

    2. sys.dm_exec_background_job_queue 동적 관리 뷰를 쿼리하여 활성 비동기 통계 작업을 검사합니다.

    활성 작업이 있을 경우 KILL STATS JOB을 사용하여 해당 작업을 완료하도록 허용하거나 수동으로 종료합니다.

  • RESTRICTED_USER
    RESTRICTED_USER를 사용하면 db_owner 고정 데이터베이스 역할과 dbcreator 및 sysadmin 고정 서버 역할의 멤버만 데이터베이스에 연결할 수 있습니다. 연결할 수 있는 멤버의 수에는 제한이 없습니다. 데이터베이스에 대한 모든 연결은 ALTER DATABASE 문의 termination 절에 지정된 시간대에 끊어집니다. 데이터베이스가 RESTRICTED_USER 상태로 바뀐 후 자격이 없는 사용자의 연결 시도는 거부됩니다.

  • MULTI_USER
    데이터베이스에 연결할 수 있는 적절한 권한이 있는 모든 사용자의 연결을 허용합니다.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 user_access 열이나 DATABASEPROPERTYEX 함수의 UserAccess 속성을 검사하여 확인할 수 있습니다.

<external_access_option> ::=

다른 데이터베이스의 개체와 같은 외부 리소스에서 데이터베이스에 액세스할 수 있는지 여부를 제어합니다.

  • DB_CHAINING { ON | OFF }

    • ON
      데이터베이스가 데이터베이스 간 소유권 체인의 원본이나 대상이 될 수 있습니다.

    • OFF
      데이터베이스가 데이터베이스 간 소유권 체인에 참여할 수 없습니다.

    중요 정보중요

    SQL Server 인스턴스는 cross db ownership chaining 서버 옵션이 0(OFF)일 때 이 설정을 인식합니다. cross db ownership chaining이 1(ON)이면 모든 사용자 데이터베이스가 이 옵션의 값에 관계없이 데이터베이스 간 소유권 체인에 참여할 수 있습니다. 이 옵션은 sp_configure를 사용하여 설정됩니다.

    이 옵션을 설정하려면 데이터베이스에 대한 CONTROL SERVER 권한이 필요합니다.

    DB_CHAINING 옵션은 master, model 및 tempdb 시스템 데이터베이스에서는 설정할 수 없습니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_db_chaining_on 열을 검사하여 확인할 수 있습니다.

  • TRUSTWORTHY { ON | OFF }

    • ON
      가장 컨텍스트를 사용하는 데이터베이스 모듈(예: 사용자 정의 함수 또는 저장 프로시저)이 데이터베이스 외부의 리소스에 액세스할 수 있습니다.

    • OFF
      가장 컨텍스트의 데이터베이스 모듈이 데이터베이스 외부 리소스에 액세스할 수 없습니다.

    TRUSTWORTHY는 데이터베이스가 연결될 때마다 OFF로 설정됩니다.

    기본적으로 msdb 데이터베이스를 제외한 모든 시스템 데이터베이스는 TRUSTWORTHY가 OFF로 설정되어 있습니다. model 및 tempdb 데이터베이스의 경우 이 값을 변경할 수 있습니다. master 데이터베이스의 경우 TRUSTWORTHY 옵션을 ON으로 설정하지 않는 것이 좋습니다.

    이 옵션을 설정하려면 데이터베이스에 대한 CONTROL SERVER 권한이 필요합니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_trustworthy_on 열을 검사하여 확인할 수 있습니다.

  • DEFAULT_FULLTEXT_LANGUAGE
    전체 텍스트 인덱싱된 열에 대한 기본 언어 값을 지정합니다.

    중요 정보중요

    이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.

  • DEFAULT_LANGUAGE
    새로 만든 모든 로그인의 기본 언어를 지정합니다. LCID(로캘 ID), 언어 이름 또는 언어 별칭을 제공하여 언어를 지정할 수 있습니다. 사용 가능한 언어 이름 및 별칭 목록은 sys.syslanguages(Transact-SQL)를 참조하십시오.

    중요 정보중요

    이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.

  • NESTED_TRIGGERS
    AFTER 트리거의 중첩(한 트리거가 다른 트리거를 시작하는 과정이 반복되는 동작) 여부를 지정합니다.

    중요 정보중요

    이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.

  • TRANSFORM_NOISE_WORDS
    의미 없는 단어 또는 중지 단어로 인해 전체 텍스트 쿼리에 대한 부울 연산이 실패할 경우 오류 메시지를 표시하지 않는 데 사용됩니다.

    중요 정보중요

    이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.

  • TWO_DIGIT_YEAR_CUTOFF
    두 자리 연도를 네 자리 연도로 해석하기 위한 구분 연도를 나타내는 1753에서 9999까지의 정수를 지정합니다.

    중요 정보중요

    이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.

<FILESTREAM_option> ::=

FileTable에 대한 설정을 제어합니다.

  • NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }

    • OFF
      FileTable 데이터에 대한 비트랜잭션 액세스를 사용하지 않도록 설정합니다.

    • READ_ONLY
      비트랜잭션 프로세스에서 이 데이터베이스의 FileTable에 있는 FILESTREAM 데이터를 읽을 수 있습니다.

    • FULL
      FileTabl의 FILESTREAM 데이터에 대한 전체 비트랜잭션 액세스를 사용할 수 있습니다.

  • DIRECTORY_NAME = <directory_name>
    Windows 호환 디렉터리 이름입니다. 이 이름은 SQL Server 인스턴스의 모든 데이터베이스 수준 디렉터리 이름 중에서 고유해야 합니다. 고유성을 비교할 때는 데이터 정렬 설정과 관계없이 대/소문자가 구분되지 않습니다. 데이터베이스에 FileTable을 만들기 전에 이 옵션을 설정해야 합니다.

<parameterization_option> ::=

매개 변수화 옵션을 제어합니다.

  • PARAMETERIZATION { SIMPLE | FORCED }

    • SIMPLE
      데이터베이스의 기본 동작에 따라 쿼리를 매개 변수화합니다.

    • FORCED
      SQL Server에서 데이터베이스의 모든 쿼리를 매개 변수화합니다.

    이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_parameterization_forced 열을 검사하여 확인할 수 있습니다.

<recovery_option> ::=

데이터베이스 복구 옵션과 디스크 I/O 오류 검사를 제어합니다.

  • FULL
    미디어 오류가 발생한 후에는 트랜잭션 로그 백업을 사용하여 전체 복구를 제공합니다. 데이터 파일이 손상된 경우 미디어 복구 기능을 통해 모든 커밋된 트랜잭션을 복원할 수 있습니다. 자세한 내용은 복구 모델(SQL Server)을 참조하십시오.

  • BULK_LOGGED
    미디어 오류가 발생한 후에 일부 대량 작업에 대해 성능은 좋고 로그 공간 사용량은 적은 방법으로 복구를 제공합니다. 최소 로깅이 가능한 작업에 대한 자세한 내용은 트랜잭션 로그(SQL Server)를 참조하십시오. BULK_LOGGED 복구 모델에서는 이러한 작업에 대해서 최소 로깅이 사용됩니다. 자세한 내용은 복구 모델(SQL Server)을 참조하십시오.

  • SIMPLE
    최소 로그 공간을 사용하는 단순 백업 전략을 제공합니다. 서버 오류 복구에 더 이상 필요 없는 로그 공간은 자동으로 재사용됩니다. 자세한 내용은 복구 모델(SQL Server)을 참조하십시오.

    중요 정보중요

    단순 복구 모델은 다른 두 모델보다 관리하기는 쉽지만 데이터 파일이 손상된 경우 데이터 손실 위험은 더 큽니다. 최신 데이터베이스 또는 차등 데이터베이스 백업이 손실된 이후의 변경 사항은 모두 수동으로 다시 입력해야 합니다.

기본 복구 모델은 model 데이터베이스의 복구 모델에 의해 결정됩니다. 적절한 복구 모델을 선택하는 방법은 복구 모델(SQL Server)을 참조하십시오.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 recovery_modelrecovery_model_desc 열 또는 DATABASEPROPERTYEX 함수의 Recovery 속성을 검사하여 확인할 수 있습니다.

  • TORN_PAGE_DETECTION { ON | OFF }

    • ON
      데이터베이스 엔진에서 완료되지 않은 페이지를 검색할 수 있습니다.

    • OFF
      데이터베이스 엔진에서 완료되지 않은 페이지를 검색할 수 없습니다.

    중요 정보중요

    TORN_PAGE_DETECTION ON | OFF 구문 구조는 이후 버전의 SQL Server에서는 제거될 예정입니다. 새 개발 작업에서는 이 구문 구조를 사용하지 않도록 하고 현재 이 구문 구조를 사용하는 응용 프로그램은 수정하십시오. 대신 PAGE_VERIFY 옵션을 사용하십시오.

  • PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
    디스크 I/O 경로 오류로 인해 손상된 데이터베이스 페이지를 찾습니다. 디스크 I/O 경로 오류는 일반적으로 페이지를 디스크에 쓸 때 전원 오류나 디스크 하드웨어 오류로 인해 발생하며 데이터베이스 손상 문제를 일으킬 수 있습니다.

    • CHECKSUM
      페이지를 디스크에 쓸 때 전체 페이지의 내용에 대한 체크섬을 계산하고 이 값을 페이지 헤더에 저장합니다. 디스크에서 페이지를 읽으면 체크섬이 다시 계산되어 페이지 헤더에 저장된 체크섬 값과 비교됩니다. 두 값이 일치하지 않으면 체크섬 오류를 나타내는 824 오류 메시지가 SQL Server 오류 로그와 Windows 이벤트 로그에 보고됩니다. 체크섬 오류는 I/O 경로 문제를 나타냅니다. 오류에 대한 근본 원인을 확인하려면 하드웨어, 펌웨어 드라이버, BIOS, 필터 드라이버(예: 바이러스 소프트웨어) 및 기타 I/O 경로 구성 요소를 조사해야 합니다.

    • TORN_PAGE_DETECTION
      페이지를 디스크에 쓸 때 8KB 데이터베이스 페이지의 각 512바이트 섹터에 대해 특정 2비트 패턴을 데이터베이스 페이지 헤더에 저장합니다. 디스크에서 페이지를 읽으면 페이지 헤더에 저장된 조각난 비트가 실제 페이지 섹터 정보와 비교됩니다. 값이 일치하지 않으면 페이지의 일부분만 디스크에 쓰여졌음을 의미합니다. 이 경우 조각난 페이지 오류를 나타내는 824 오류 메시지가 SQL Server 오류 로그와 Windows 이벤트 로그에 보고됩니다. 조각난 페이지가 실제로 쓰기가 완료되지 않은 페이지인 경우 조각난 페이지는 보통 데이터베이스 복구에서 검색됩니다. 그러나 다른 I/O 경로 오류도 언제든 조각난 페이지의 원인이 될 수 있습니다.

    • NONE
      데이터베이스 페이지 쓰기에서 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 생성되지 않습니다. SQL Server는 페이지 헤더에 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 있는 경우에도 읽기 중 체크섬이나 조각난 페이지를 확인하지 않습니다.

    PAGE_VERIFY 옵션을 사용하는 경우 다음 중요 사항을 고려하십시오.

    • 기본값은 CHECKSUM입니다.

    • 사용자 또는 시스템 데이터베이스를 SQL Server 2005 이상 버전으로 업그레이드하는 경우 PAGE_VERIFY 값(NONE 또는 TORN_PAGE_DETECTION)이 유지됩니다. CHECKSUM을 사용하는 것이 좋습니다.

      [!참고]

      이전 버전의 SQL Server에서는 tempdb 데이터베이스의 PAGE_VERIFY 데이터베이스 옵션이 NONE으로 설정되며 이를 수정할 수 없습니다. SQL Server 2008 이상 버전에서 SQL Server가 새로 설치된 경우 tempdb 데이터베이스의 기본값은 CHECKSUM입니다. SQL Server 설치를 업그레이드하면 기본값이 NONE으로 유지됩니다. 이 옵션은 수정할 수 없습니다. tempdb 데이터베이스에는 CHECKSUM을 사용하는 것이 좋습니다.

    • TORN_PAGE_DETECTION은 리소스는 덜 사용하지만 CHECKSUM 보호를 최소한으로 제공합니다.

    • PAGE_VERIFY는 데이터베이스를 잠그거나 오프라인으로 설정하지 않고 즉, 데이터베이스의 동시성을 방해하지 않고 설정할 수 있습니다.

    • CHECKSUM과 TORN_PAGE_DETECTION은 상호 배타적이므로 두 옵션을 동시에 사용할 수 없습니다.

    조각난 페이지나 체크섬 오류가 검색되면 데이터를 복원하거나 오류가 인덱스 페이지에만 해당되는 경우 인덱스를 다시 작성하여 복구할 수 있습니다. 체크섬 오류가 발생하면 DBCC CHECKDB를 실행하여 이 오류의 영향을 받는 데이터베이스 페이지의 형식 또는 페이지를 확인할 수 있습니다. 복원 옵션에 대한 자세한 내용은 RESTORE 인수(Transact-SQL)를 참조하십시오. 데이터를 복원하면 데이터 손상 문제를 해결할 수 있지만 오류가 계속 발생하지 않도록 하려면 하드웨어 오류 등의 근본 원인을 진단하여 수정해야 합니다.

    SQL Server는 체크섬, 조각난 페이지 또는 기타 I/O 오류로 읽기가 실패할 경우 4번 다시 시도합니다. 다시 시도 중에 한 번이라도 읽기가 성공하면 오류 로그에 메시지가 기록되고 해당 읽기를 트리거한 명령이 계속 수행됩니다. 다시 시도가 실패하면 824 오류 메시지와 함께 명령이 실패합니다.

    체크섬, 조각난 페이지, 읽기 다시 시도, 823 및 824 오류 메시지와 기타 SQL Server I/O 감사 기능에 대한 자세한 내용은 Microsoft 웹 사이트를 참조하십시오.

    이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 page_verify_option 열이나 DATABASEPROPERTYEX 함수의 IsTornPageDetectionEnabled 속성을 검사하여 확인할 수 있습니다.

<target_recovery_time_option> ::=

데이터베이스 단위로 간접 검사점의 빈도를 지정합니다. 기본값 0은 데이터베이스가 자동 검사점을 사용함을 나타내며, 빈도는 서버 인스턴스의 복구 간격 설정에 따라 달라집니다.

  • TARGET_RECOVERY_TIME **=**target_recovery_time { SECONDS | MINUTES }

    • target_recovery_time
      충돌 시 지정된 데이터베이스를 복구하는 데 걸리는 최대 시간을 지정합니다.

    • SECONDS
      target_recovery_time이 초 단위로 표현됨을 나타냅니다.

    • MINUTES
      target_recovery_time이 분 단위로 표현됨을 나타냅니다.

간접 검사점에 대한 자세한 내용은 데이터베이스 검사점(SQL Server)을 참조하십시오.

<service_broker_option> ::=

메시지 배달을 사용 또는 사용하지 않도록 설정하거나, 새 Service Broker 식별자를 설정하거나, 대화 우선 순위를 ON 또는 OFF로 설정하는 Service Broker 옵션을 제어합니다.

  • ENABLE_BROKER
    지정된 데이터베이스에 대해 Service Broker를 사용할 수 있도록 지정합니다. 메시지 배달이 시작되고 sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 true로 설정됩니다. 데이터베이스에 기존 Service Broker 식별자가 유지됩니다. 데이터베이스가 데이터베이스 미러링 구성에서 보안 주체인 경우에는 Service Broker를 사용할 수 없습니다.

    [!참고]

    ENABLE_BROKER를 사용하려면 배타적 데이터베이스 잠금이 필요합니다. 다른 세션이 데이터베이스의 리소스를 잠근 경우 ENABLE_BROKER는 다른 세션이 해당 잠금을 해제할 때까지 기다립니다. 사용자 데이터베이스에서 Service Broker를 사용하도록 설정하려면 데이터베이스를 단일 사용자 모드로 설정하는 등의 방법으로 데이터베이스가 다른 세션에 의해 사용되지 않도록 한 다음 ALTER DATABASE SET ENABLE_BROKER 문을 실행합니다. msdb 데이터베이스에서 Service Broker를 사용하도록 설정하려면 먼저 SQL Server 에이전트를 중지하여 Service Broker에서 필요한 잠금을 획득할 수 있도록 합니다.

  • DISABLE_BROKER
    지정된 데이터베이스에 대해 Service Broker를 사용하지 않도록 지정합니다. 메시지 배달이 중지되고 sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 false로 설정됩니다. 데이터베이스에 기존 Service Broker 식별자가 유지됩니다.

  • NEW_BROKER
    데이터베이스가 새 Broker 식별자를 받도록 지정합니다. 데이터베이스는 새 Service Broker가 될 것으로 간주되기 때문에 데이터베이스 내의 모든 기존 대화는 종료 대화 메시지 없이 즉시 제거됩니다. 이전 Service Broker 식별자를 참조하는 경로는 새 식별자로 다시 만들어야 합니다.

  • ERROR_BROKER_CONVERSATIONS
    Service Broker 메시지 배달을 사용하도록 지정합니다. 이렇게 하면 데이터베이스의 기존 Service Broker 식별자가 유지됩니다. Service Broker는 오류가 있는 데이터베이스의 모든 대화를 종료합니다. 또한 응용 프로그램에서 기존 대화에 대해 일반적인 정리 작업을 수행할 수 있습니다.

  • HONOR_BROKER_PRIORITY {ON | OFF}

    • ON
      보내기 작업에서 대화에 할당된 우선 순위 수준을 고려합니다. 우선 순위 수준이 높은 대화의 메시지는 우선 순위 수준이 낮은 대화의 메시지보다 먼저 전송됩니다.

    • OFF
      모든 대화에 기본 우선 순위 수준이 할당된 것으로 간주하고 보내기 작업이 실행됩니다.

    HONOR_BROKER_PRIORITY 옵션의 변경 내용은 전송 대기 중인 메시지가 없는 대화 또는 새 대화에 즉시 적용됩니다. ALTER DATABASE가 실행될 때 대화에 전송 대기 중인 메시지가 있는 경우에는 대화의 해당 메시지가 전송되기 전까지 새 설정이 적용되지 않습니다. 모든 대화에 새 설정이 적용되는 데 걸리는 시간은 상황에 따라 크게 다를 수 있습니다.

    이 속성의 현재 설정은 sys.databases 카탈로그 뷰의 is_broker_priority_honored 열에 보고됩니다.

<snapshot_option> ::=

트랜잭션 격리 수준을 결정합니다.

  • ALLOW_SNAPSHOT_ISOLATION { ON | OFF }

    • ON
      데이터베이스 수준에서 스냅숏 옵션을 사용하도록 설정합니다. 이 옵션을 사용하면 트랜잭션에서 스냅숏 격리를 사용하지 않는 경우에도 DML 문에서 행 버전을 생성하기 시작합니다. 이 옵션을 사용하도록 설정하면 트랜잭션에서 SNAPSHOT 트랜잭션 격리 수준을 지정할 수 있습니다. 트랜잭션이 SNAPSHOT 격리 수준에서 실행되면 모든 문에서 트랜잭션 시작 시점의 상태로 데이터 스냅숏을 봅니다. SNAPSHOT 격리 수준에서 실행되는 트랜잭션이 여러 데이터베이스의 데이터에 액세스할 경우 모든 데이터베이스에서 ALLOW_SNAPSHOT_ISOLATION이 ON으로 설정되어 있어야 합니다. 그렇지 않고 ALLOW_SNAPSHOT_ISOLATION이 OFF로 설정된 경우에는 트랜잭션 내의 각 문에서는 FROM 절의 참조에서 데이터베이스의 테이블에 대한 잠금 힌트를 사용해야 합니다.

    • OFF
      데이터베이스 수준에서 스냅숏 옵션을 해제합니다. 트랜잭션에서는 SNAPSHOT 트랜잭션 격리 수준을 지정할 수 없습니다.

    ALLOW_SNAPSHOT_ISOLATION을 새 상태로 설정하는 경우(ON에서 OFF로 또는 OFF에서 ON으로) ALTER DATABASE는 데이터베이스 내의 기존 트랜잭션이 모두 커밋될 때까지 호출자에게 제어권을 반환하지 않습니다. 데이터베이스가 이미 ALTER DATABASE 문에 지정된 상태인 경우 제어권은 호출자에게 즉시 반환됩니다. ALTER DATABASE 문이 제어권을 빨리 반환하지 않는 경우 sys.dm_tran_active_snapshot_database_transactions를 사용하여 장기 실행 트랜잭션이 있는지 여부를 확인합니다. ALTER DATABASE 문을 취소하면 데이터베이스는 ALTER DATABASE가 시작된 시점의 상태로 남게 됩니다. sys.databases 카탈로그 뷰는 데이터베이스에 있는 스냅숏 격리 트랜잭션의 상태를 나타냅니다. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON인 경우 ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION을 OFF로 설정하는 작업은 6초간 일시 중지된 다음 다시 시도됩니다.

    데이터베이스가 OFFLINE인 경우 ALLOW_SNAPSHOT_ISOLATION의 상태를 변경할 수 없습니다.

    READ_ONLY 데이터베이스에서 ALLOW_SNAPSHOT_ISOLATION을 설정하는 경우 데이터베이스가 이후에 READ_WRITE로 설정되어도 이 설정은 그대로 유지됩니다.

    master, model, msdb 및 tempdb 데이터베이스에 대해 ALLOW_SNAPSHOT_ISOLATION 설정을 변경할 수 있습니다. tempdb에 대한 설정을 변경하면 이 설정은 데이터베이스 엔진 인스턴스가 중지되었다가 다시 시작될 때마다 유지됩니다. model에 대한 설정을 변경하면 이 설정은 새로 만드는 모든 데이터베이스(tempdb 제외)의 기본값이 됩니다.

    master 및 msdb 데이터베이스의 경우 이 옵션은 기본적으로 ON입니다.

    이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 snapshot_isolation_state 열을 검사하여 확인할 수 있습니다.

  • READ_COMMITTED_SNAPSHOT { ON | OFF }

    • ON
      데이터베이스 수준에서 커밋된 읽기 스냅숏 옵션을 사용하도록 설정합니다. 이 옵션을 사용하면 트랜잭션에서 스냅숏 격리를 사용하지 않는 경우에도 DML 문에서 행 버전을 생성하기 시작합니다. 이 옵션을 사용하도록 설정하면 커밋된 읽기 스냅숏 격리 수준을 지정하는 트랜잭션에서는 잠금 대신 행 버전 관리를 사용합니다. 트랜잭션이 커밋된 읽기 격리 수준에서 실행되면 모든 문에서는 해당 문이 시작되던 때의 상태로 데이터 스냅숏을 봅니다.

    • OFF
      데이터베이스 수준에서 커밋된 읽기 스냅숏 옵션을 해제합니다. READ COMMITTED 격리 수준을 지정하는 트랜잭션에서는 잠금을 사용합니다.

    READ_COMMITTED_SNAPSHOT을 ON 또는 OFF로 설정하려면 ALTER DATABASE 명령을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 상태의 연결이 없어야 합니다. 그러나 데이터베이스가 단일 사용자 모드에 있을 필요는 없습니다. 데이터베이스가 OFFLINE인 경우 이 옵션의 상태를 변경할 수 없습니다.

    READ_ONLY 데이터베이스에서 READ_COMMITTED_SNAPSHOT을 설정하는 경우 데이터베이스가 이후에 READ_WRITE로 설정되어도 이 설정은 그대로 유지됩니다.

    master, tempdb 또는 msdb 시스템 데이터베이스에 대해서는 READ_COMMITTED_SNAPSHOT을 ON으로 설정할 수 없습니다. model에 대한 설정을 변경하면 이 설정은 새로 만드는 모든 데이터베이스(tempdb 제외)의 기본값이 됩니다.

    이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_read_committed_snapshot_on 열을 검사하여 확인할 수 있습니다.

<sql_option> ::=

ANSI 호환 옵션을 데이터베이스 수준에서 제어합니다.

  • ANSI_NULL_DEFAULT { ON | OFF }
    CREATE TABLE 또는 ALTER TABLE 문에서 Null 허용 여부가 명시적으로 정의되어 있지 않은 열 또는 CLR 사용자 정의 형식에 대한 기본값(NULL 또는 NOT NULL)을 결정합니다. 제약 조건이 정의된 열은 이 설정에 상관 없이 제약 조건 규칙을 따릅니다.

    • ON
      기본값은 NULL입니다.

    • OFF
      기본값이 NOT NULL입니다.

    SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULL_DEFAULT에 대한 기본 데이터베이스 수준 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 ANSI_NULL_DEFAULT를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET ANSI_NULL_DFLT_ON(Transact-SQL)을 참조하십시오.

    ANSI 호환을 위해 ANSI_NULL_DEFAULT 데이터베이스 옵션을 ON으로 설정하면 데이터베이스의 기본값이 NULL로 변경됩니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_null_default_on 열이나 DATABASEPROPERTYEX 함수의 IsAnsiNullDefault 속성을 검사하여 확인할 수 있습니다.

  • ANSI_NULLS { ON | OFF }

    • ON
      Null 값에 대한 모든 비교는 UNKNOWN으로 평가됩니다.

    • OFF
      Null 값에 대한 비-UNICODE 값 비교는 두 값이 모두 NULL인 경우 TRUE로 평가됩니다.

    중요 정보중요

    SQL Server의 이후 버전에서는 ANSI_NULLS가 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

    SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULLS에 대한 기본 데이터베이스 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 ANSI_NULLS를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET ANSI_NULLS (Transact-SQL)를 참조하십시오.

    계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경하는 경우에도 SET ANSI_NULLS를 ON으로 설정해야 합니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_nulls_on 열이나 DATABASEPROPERTYEX 함수의 IsAnsiNullsEnabled 속성을 검사하여 확인할 수 있습니다.

  • ANSI_PADDING { ON | OFF }

    • ON
      문자열을 동일한 길이만큼 채운 후에 varchar 또는 nvarchar 데이터 형식으로 변환 또는 삽입합니다.

      varchar 또는 nvarchar 열에 삽입된 문자 값의 후행 공백과 varbinary 열에 삽입된 이진 값의 후행 0이 잘리지 않습니다. 값은 열의 크기만큼 오른쪽에 공백으로 채워집니다.

    • OFF
      varchar 또는 nvarchar의 후행 공백과 varbinary의 0이 잘립니다.

    OFF로 지정하면 이 설정은 새 열의 정의에만 영향을 줍니다.

    중요 정보중요

    SQL Server의 이후 버전에서는 ANSI_PADDING이 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. ANSI_PADDING은 항상 ON으로 설정하는 것이 좋습니다. 계산 열이나 인덱싱된 뷰에서 인덱스를 만들거나 조작할 때는 ANSI_PADDING을 ON으로 설정해야 합니다.

    ANSI_PADDING을 ON으로 설정하면 Null을 허용하는 char(n) 및 binary(n) 열이 열 길이만큼 채워지지만 ANSI_PADDING을 OFF로 설정하면 후행 공백과 0이 잘립니다. Null을 허용하지 않는 char(n) 및 binary(n) 열은 항상 열 길이만큼 채워집니다.

    SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_PADDING에 대한 기본 데이터베이스 수준 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 ANSI_PADDING을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET ANSI_PADDING(Transact-SQL)을 참조하십시오.

    중요 정보중요

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_padding_on 열이나 DATABASEPROPERTYEX 함수의 IsAnsiPaddingEnabled 속성을 검사하여 확인할 수 있습니다.

  • ANSI_WARNINGS { ON | OFF }

    • ON
      0으로 나누기 또는 집계 함수에 Null 값이 나타나는 등의 상황에서 오류 또는 경고가 발생합니다.

    • OFF
      0으로 나누기와 같은 상황이 발생해도 아무런 경고도 발생하지 않으며 Null 값이 반환됩니다.

    계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경하는 경우 SET ANSI_WARNINGS를 ON으로 설정해야 합니다.

    SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_WARNINGS에 대한 기본 데이터베이스 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 ANSI_WARNINGS를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET ANSI_WARNINGS(Transact-SQL)를 참조하십시오.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_warnings_on 열이나 DATABASEPROPERTYEX 함수의 IsAnsiWarningsEnabled 속성을 검사하여 확인할 수 있습니다.

  • ARITHABORT { ON | OFF }

    • ON
      쿼리 실행 중 오버플로 또는 0으로 나누기 오류가 발생하면 쿼리를 종료합니다.

    • OFF
      이러한 오류 중 하나가 발생할 경우 경고 메시지가 표시되지만 쿼리, 일괄 처리 또는 트랜잭션은 오류가 발생하지 않은 것처럼 계속 처리됩니다.

    계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 SET ARITHABORT를 ON으로 설정해야 합니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_arithabort_on 열이나 DATABASEPROPERTYEX 함수의 IsArithmeticAbortEnabled 속성을 검사하여 확인할 수 있습니다.

  • COMPATIBILITY_LEVEL { 90 | 100 | 110 }
    자세한 내용은 ALTER DATABASE 호환성 수준(Transact-SQL)을 참조하십시오.

  • CONCAT_NULL_YIELDS_NULL { ON | OFF }

    • ON
      피연산자 중 하나가 NULL일 경우 연결 연산의 결과는 NULL입니다. 예를 들어 문자열 "This is"와 NULL을 연결하면 결과는 "This is"가 아니라 NULL이 됩니다.

    • OFF
      Null 값은 빈 문자열로 취급됩니다.

    계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 SET CONCAT_NULL_YIELDS_NULL은 반드시 ON으로 설정되어야 합니다.

    중요 정보중요

    SQL Server의 이후 버전에서는 CONCAT_NULL_YIELDS_NULL이 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

    SET 문을 사용하여 설정한 연결 수준의 설정은 CONCAT_NULL_YIELDS_NULL의 기본 데이터베이스 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 세션의 CONCAT_NULL_YIELDS_NULL을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET CONCAT_NULL_YIELDS_NULL(Transact-SQL)을 참조하십시오.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_concat_null_yields_null_on 열이나 DATABASEPROPERTYEX 함수의 IsNullConcat 속성을 검사하여 확인할 수 있습니다.

  • QUOTED_IDENTIFIER { ON | OFF }

    • ON
      큰따옴표는 구분 식별자를 묶을 때 사용할 수 있습니다.

      큰따옴표로 구분되는 모든 문자열은 개체 식별자로 해석됩니다. 따옴표 붙은 식별자는 Transact-SQL 식별자 규칙을 따르지 않아도 됩니다. 따옴표 붙은 식별자는 키워드일 수 있으며 Transact-SQL 식별자에서 일반적으로 허용되지 않는 문자를 포함할 수 있습니다. 작은따옴표(')가 리터럴 문자열의 일부로 포함되면 큰따옴표(")로 나타낼 수 있습니다.

    • OFF
      식별자는 따옴표 안에 있을 수 없으며 식별자에 대한 모든 Transact-SQL 규칙을 따라야 합니다. 리터럴은 작은따옴표 또는 큰따옴표로 구분할 수 있습니다.

    SQL Server에서도 식별자를 대괄호([ ])로 구분할 수 있습니다. 대괄호로 묶은 식별자는 QUOTED_IDENTIFIER의 설정에 관계없이 항상 사용할 수 있습니다. 자세한 내용은 데이터베이스 식별자를 참조하십시오.

    테이블이 생성될 때 QUOTED IDENTIFIER 옵션이 OFF로 설정된 경우에도 해당 테이블의 메타데이터에는 항상 ON으로 저장됩니다.

    SET 문을 사용하여 설정한 연결 수준의 설정은 QUOTED_IDENTIFIER의 기본 데이터베이스 설정보다 우선적으로 적용됩니다. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL Server 인스턴스에 연결할 때 QUOTED_IDENTIFIER를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다. 자세한 내용은 SET QUOTED_IDENTIFIER(Transact-SQL)를 참조하십시오.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_quoted_identifier_on 열이나 DATABASEPROPERTYEX 함수의 IsQuotedIdentifiersEnabled 속성을 검사하여 확인할 수 있습니다.

  • NUMERIC_ROUNDABORT { ON | OFF }

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

    • OFF
      전체 자릿수가 손실되어도 오류 메시지가 생성되지 않으며 결과를 저장하는 열 또는 변수의 전체 자릿수로 결과가 반올림됩니다.

    계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 NUMERIC_ROUNDABORT는 OFF로 설정되어야 합니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_numeric_roundabort_on 열이나 DATABASEPROPERTYEX 함수의 IsNumericRoundAbortEnabled 속성을 검사하여 확인할 수 있습니다.

  • RECURSIVE_TRIGGERS { ON | OFF }

    • ON
      AFTER 트리거의 재귀적 실행이 허용됩니다.

    • OFF
      AFTER 트리거의 직접 재귀적 실행이 허용되지 않습니다. AFTER 트리거의 간접 재귀도 사용하지 않도록 하려면 sp_configure를 사용하여 nested triggers 서버 옵션을 0으로 설정합니다.

    [!참고]

    RECURSIVE_TRIGGERS가 OFF로 설정되면 직접 재귀만 금지됩니다. 간접 재귀를 사용하지 않도록 하려면 nested triggers 서버 옵션도 0으로 설정해야 합니다.

    이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_recursive_triggers_on 열이나 DATABASEPROPERTYEX 함수의 IsRecursiveTriggersEnabled 속성을 검사하여 확인할 수 있습니다.

WITH <termination> ::=

데이터베이스가 다른 상태로 바뀔 때 완료되지 않은 트랜잭션을 롤백할 시점을 지정합니다. termination 절을 생략하면 데이터베이스에 잠금이 있는 경우 ALTER DATABASE 문이 무기한 대기합니다. termination 절은 SET 절 다음에 한 번만 지정할 수 있습니다.

[!참고]

모든 데이터베이스 옵션에서 WITH <termination> 절을 사용하는 것은 아닙니다. 자세한 내용은 이 항목에 있는 "주의 섹션"의 "옵션 설정" 아래에 있는 표를 참조하십시오.

  • ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
    지정한 시간(초)이 경과한 후 롤백할 것인지 또는 즉시 롤백할 것인지를 지정합니다.

  • NO_WAIT
    트랜잭션이 자체적으로 커밋되거나 롤백되기를 기다리지 않고 요청된 데이터베이스 상태 또는 옵션 변경을 즉시 완료할 수 없는 경우에 요청이 실패하도록 지정합니다.

주의

옵션 설정

데이터베이스 옵션에 대한 현재 설정을 검색하려면 sys.databases 카탈로그 뷰 또는 DATABASEPROPERTYEX를 사용합니다.

데이터베이스 옵션을 설정하면 수정 사항이 즉시 반영됩니다.

새로 만드는 모든 데이터베이스에 적용되는 데이터베이스 옵션의 기본값을 변경하려면 model 데이터베이스에서 해당 데이터베이스 옵션을 변경하십시오.

모든 데이터베이스 옵션에서 WITH <termination> 절을 사용하거나 데이터베이스 옵션을 다른 옵션과 조합하여 지정할 수 있는 것은 아닙니다. 다음 표에서는 이러한 옵션 및 이들의 옵션과 종료 상태를 나열합니다.

옵션 범주

다른 옵션과 함께 지정할 수 있음

WITH <termination> 절을 사용할 수 있음

<db_state_option>

<db_user_access_option>

<db_update_option>

<external_access_option>

아니요

<cursor_option>

아니요

<auto_option>

아니요

<sql_option>

아니요

<recovery_option>

아니요

<target_recovery_time_option>

아니요

<database_mirroring_option>

아니요

아니요

ALLOW_SNAPSHOT_ISOLATION

아니요

아니요

READ_COMMITTED_SNAPSHOT

아니요

<service_broker_option>

아니요

DATE_CORRELATION_OPTIMIZATION

<parameterization_option>

<change_tracking_option>

<db_encryption>

아니요

SQL Server의 인스턴스에 대한 계획 캐시는 다음 옵션 중 하나를 설정하여 삭제됩니다.

OFFLINE

READ_WRITE

ONLINE

MODIFY FILEGROUP DEFAULT

MODIFY_NAME

MODIFY FILEGROUP READ_WRITE

COLLATE

MODIFY FILEGROUP READ_ONLY

READ_ONLY

 

프로시저 캐시는 다음 시나리오에도 플러시됩니다.

  • 데이터베이스에서 AUTO_CLOSE 데이터베이스 옵션이 ON으로 설정되어 있습니다. 사용자 연결이 데이터베이스를 참조하거나 사용하지 않으면 백그라운드 작업에서 자동으로 데이터베이스를 닫고 종료하려고 합니다.

  • 기본 옵션이 있는 데이터베이스에 대해 여러 가지 쿼리를 실행합니다. 그러면 데이터베이스가 삭제됩니다.

  • 원본 데이터베이스에 대한 데이터베이스 스냅숏이 삭제됩니다.

  • 데이터베이스에 대한 트랜잭션 로그를 성공적으로 다시 작성합니다.

  • 데이터베이스 백업을 복원합니다.

  • 데이터베이스를 분리합니다.

계획 캐시를 삭제하면 모든 후속 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하될 수 있습니다. 계획 캐시의 삭제된 각 캐시스토어에 대해 SQL Server 오류 로그에 "데이터베이스 유지 관리 또는 재구성 작업으로 인해 '%s' 캐시스토어(계획 캐시의 일부)에 대한 캐시스토어 플러시가 SQL Server에서 %d번 발견되었습니다"라는 정보 메시지가 포함됩니다. 이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.

1.데이터베이스 옵션 설정

다음 예에서는 AdventureWorks2012 예제 데이터베이스에 대해 복구 모델 및 데이터 페이지 확인 옵션을 설정합니다.

USE master;
GO
ALTER DATABASE AdventureWorks2012 
SET RECOVERY FULL, PAGE_VERIFY CHECKSUM;
GO

2.데이터베이스를 READ_ONLY로 설정

데이터베이스 또는 파일 그룹의 상태를 READ_ONLY 또는 READ_WRITE로 변경하려면 데이터베이스에 대한 배타적 액세스가 필요합니다. 다음 예에서는 데이터베이스를 SINGLE_USER 모드로 설정하여 배타적 액세스 권한을 확보한 다음 AdventureWorks2012 데이터베이스의 상태를 READ_ONLY로 설정한 후 데이터베이스 액세스를 모든 사용자에게 반환합니다.

[!참고]

이 예에서는 첫 번째 ALTER DATABASE 문에서 WITH ROLLBACK IMMEDIATE 종료 옵션을 사용합니다. 완료되지 않은 트랜잭션은 모두 롤백되며 AdventureWorks2012 데이터베이스에 대한 다른 모든 연결은 즉시 끊어집니다.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

3.데이터베이스에서 스냅숏 격리 활성화

다음 예에서는 AdventureWorks2012 데이터베이스에 대해 스냅숏 격리 프레임워크 옵션을 활성화합니다.

USE AdventureWorks2012;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
     snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'AdventureWorks2012';
GO
USE master;
GO
ALTER DATABASE AdventureWorks2012
    SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check again.
SELECT name, snapshot_isolation_state,
     snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'AdventureWorks2012';
GO

결과 집합은 스냅숏 격리 프레임워크가 활성화되었음을 보여 줍니다.

name                 snapshot_isolation_state  description

-------------------- ------------------------  ----------

AdventureWorks2012 1                         ON

4.변경 내용 추적 설정, 수정 및 해제

다음 예에서는 AdventureWorks2012 데이터베이스에 대해 변경 내용 추적을 설정하고 보존 기간을 4일로 설정합니다.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

다음 예에서는 보존 기간을 3일로 바꾸는 방법을 보여 줍니다.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

다음 예에서는 AdventureWorks2012 데이터베이스에 대한 변경 내용 추적을 해제하는 방법을 보여 줍니다.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF;

참고 항목

참조

ALTER DATABASE 호환성 수준(Transact-SQL)

ALTER DATABASE 데이터베이스 미러링(Transact-SQL)

ALTER DATABASE SET HADR(Transact-SQL)

CREATE DATABASE(Transact-SQL)

DATABASEPROPERTYEX(Transact-SQL)

DROP DATABASE(Transact-SQL)

SET TRANSACTION ISOLATION LEVEL(Transact-SQL)

sp_configure(Transact-SQL)

sys.databases(Transact-SQL)

sys.data_spaces(Transact-SQL)

개념

통계

변경 내용 추적 설정 및 해제(SQL Server)