ALTER DATABASE(Transact-SQL)

업데이트: 2006년 12월 12일

데이터베이스 또는 데이터베이스와 연관된 파일 및 파일 그룹을 수정합니다. 데이터베이스의 파일 및 파일 그룹 추가 또는 제거, 데이터베이스 또는 데이터베이스 내 파일 및 파일 그룹 특성 변경, 데이터베이스 데이터 정렬 변경 및 데이터베이스 옵션 설정을 수행합니다. 데이터베이스 스냅숏은 수정할 수 없습니다. 복제와 연관된 데이터베이스 옵션을 수정하려면 sp_replicationdboption을 사용하십시오.

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

구문

ALTER DATABASE database_name 
{
    <add_or_modify_files>
  | <add_or_modify_filegroups>
  | <set_database_options>
  | MODIFY NAME = new_database_name 
  | COLLATE collation_name
}
[;]

<add_or_modify_files>::=
{
    ADD FILE <filespec> [ ,...n ] 
        [ TO FILEGROUP { filegroup_name } ]
  | ADD LOG FILE <filespec> [ ,...n ] 
  | REMOVE FILE logical_file_name 
  | MODIFY FILE <filespec>
}

<filespec>::= 
(
    NAME = logical_file_name  
    [ , NEWNAME = new_logical_name ] 
    [ , FILENAME = 'os_file_name' ] 
    [ , SIZE = size [ KB | MB | GB | TB ] ] 
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] 
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ] 
    [ , OFFLINE ]
) 

<add_or_modify_filegroups>::=
{
    | ADD FILEGROUP filegroup_name 
    | REMOVE FILEGROUP filegroup_name 
    | MODIFY FILEGROUP filegroup_name
        { <filegroup_updatability_option> 
        | DEFAULT
        | NAME = new_filegroup_name 
        }
}
<filegroup_updatability_option>::=
{
    { READONLY | READWRITE } 
    | { READ_ONLY | READ_WRITE }
}

<set_database_options>::=
SET 
{
    { <optionspec> [ ,...n ] [ WITH <termination> ] }
}

<optionspec>::= 
{
    <db_state_option>
  | <db_user_access_option> 
  | <db_update_option>   | <external_access_option>
  | <cursor_option> 
  | <auto_option> 
  | <sql_option> 
  | <recovery_option> 
  | <database_mirroring_option>
  | <service_broker_option>
  | <date_correlation_optimization_option>
  | <parameterization_option>
}

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

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

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
}

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

<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 }
}

<sql_option> ::= 
{
    ANSI_NULL_DEFAULT { ON | OFF } 
  | ANSI_NULLS { ON | OFF } 
  | ANSI_PADDING { ON | OFF } 
  | ANSI_WARNINGS { ON | OFF } 
  | ARITHABORT { ON | OFF } 
  | CONCAT_NULL_YIELDS_NULL { ON | OFF } 
  | NUMERIC_ROUNDABORT { ON | OFF } 
  | QUOTED_IDENTIFIER { ON | OFF } 
  | RECURSIVE_TRIGGERS { ON | OFF } 
}

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

<database_mirroring_option> ::= 
{ <partner_option> | <witness_option> }
    <partner_option> ::=
    PARTNER { = 'partner_server' 
            | FAILOVER 
            | FORCE_SERVICE_ALLOW_DATA_LOSS
            | OFF
            | RESUME 
            | SAFETY { FULL | OFF }
            | SUSPEND 
            | TIMEOUT integer
            }
    <witness_option> ::=
    WITNESS { = 'witness_server' 
            | OFF 
            }

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

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

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

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION {ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
}
<termination> ::= 
{
    ROLLBACK AFTER integer [ SECONDS ] 
  | ROLLBACK IMMEDIATE 
  | NO_WAIT
}

인수

  • database_name
    수정할 데이터베이스의 이름입니다.
  • MODIFY NAME **=**new_database_name
    데이터베이스의 이름을 new_database_name에 지정된 이름으로 바꿉니다.
  • COLLATE collation_name
    데이터베이스의 데이터 정렬을 지정합니다. collation_name은 Windows 데이터 정렬 이름 또는 SQL 데이터 정렬 이름이 될 수 있습니다. 이를 지정하지 않으면 SQL Server 인스턴스의 데이터 정렬이 지정됩니다.

    Windows 및 SQL 데이터 정렬 이름에 대한 자세한 내용은 COLLATE(Transact-SQL)를 참조하십시오.

<add_or_modify_files>::=

추가, 제거 또는 수정할 파일을 지정합니다.

  • ADD FILE
    데이터베이스에 파일을 추가합니다.

    • TO FILEGROUP { filegroup_name }
      지정된 파일을 추가할 파일 그룹을 지정합니다. 현재 파일 그룹을 표시하고 어떤 파일 그룹이 현재 기본 파일 그룹인지 표시하려면 sys.filegroups 카탈로그 뷰를 사용하십시오.
  • ADD LOG FILE
    지정된 데이터베이스에 로그 파일을 추가합니다.
  • REMOVE FILE logical_file_name
    SQL Server 인스턴스에서 논리적 파일 설명을 제거하고 물리적 파일을 삭제합니다. 파일이 비어 있어야 제거할 수 있습니다.

    • logical_file_name
      파일 참조 시 SQL Server에서 사용하는 논리적 이름입니다.
  • MODIFY FILE
    수정할 파일을 지정합니다. <filespec> 속성은 한 번에 한 개씩만 변경할 수 있습니다. 수정할 파일을 식별하려면 <filespec>에 항상 NAME을 지정해야 합니다. SIZE를 지정할 경우 새 크기가 현재 파일 크기보다 커야 합니다.

    데이터 파일이나 로그 파일의 논리적 이름을 수정하려면 NAME 절에 이름을 바꿀 논리적 파일 이름을 지정하고 NEWNAME 절에 파일의 새 논리적 이름을 지정합니다. 예를 들면 다음과 같습니다.

    MODIFY FILE ( NAME = logical_file_name, NEWNAME = new_logical_name ) 
    

    데이터 파일 또는 로그 파일을 새 위치로 이동하려면 NAME 절에 파일의 현재 논리적 이름을 지정하고 FILENAME 절에 새 경로와 운영 체제 파일 이름을 지정합니다. 예를 들면 다음과 같습니다.

    MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name ' )
    

    전체 텍스트 카탈로그를 이동하는 경우 FILENAME 절에 새 경로만 지정합니다. 운영 체제 파일 이름은 지정하지 마십시오.

    자세한 내용은 데이터베이스 파일 이동을 참조하십시오.

<filespec>::=

파일 속성을 제어합니다.

  • NAME logical_file_name
    파일의 논리적 이름을 지정합니다.

    • logical_file_name
      파일 참조 시 SQL Server 인스턴스에서 사용하는 논리적 이름입니다.
  • NEWNAME new_logical_file_name
    파일의 새 논리적 이름을 지정합니다.

    • new_logical_file_name
      기존 논리적 파일 이름을 바꿀 이름입니다. 이 이름은 데이터베이스에서 고유해야 하며 식별자에 대한 규칙을 따라야 합니다. 이름에 문자나 유니코드 상수, 일반 식별자, 구분 식별자를 지정할 수 있습니다. 자세한 내용은 식별자를 개체 이름으로 사용을 참조하십시오.
  • FILENAME 'os_file_name'
    운영 체제(물리적) 파일 이름을 지정합니다.

    • ' os_file_name '
      파일을 만들 때 운영 체제에서 사용한 경로와 파일 이름입니다. 이 파일은 SQL Server가 설치된 서버에 있어야 합니다. ALTER DATABASE 문을 실행하기 전에 지정된 경로가 존재해야 합니다.

      파일에 대해 UNC 경로가 지정된 경우 SIZE, MAXSIZE 및 FILEGROWTH 매개 변수를 설정할 수 없습니다.

      데이터 파일을 압축 파일 시스템에 저장하려면 해당 파일이 읽기 전용 보조 파일이거나 데이터베이스가 읽기 전용이어야 합니다. 로그 파일은 압축 파일 시스템에 저장할 수 없습니다. 자세한 내용은 읽기 전용 파일 그룹 및 압축을 참조하십시오.

      파일이 원시 파티션에 있을 경우, os_file_name은 기존 원시 파티션의 드라이브 문자만 지정해야 합니다. 각 원시 파티션에는 한 개의 파일만 저장할 수 있습니다.

  • SIZE size
    파일 크기를 지정합니다.

    • size
      파일의 크기입니다.

      ADD FILE과 함께 지정할 경우 size는 파일의 처음 크기를 나타내고, MODIFY FILE과 함께 지정할 경우 size는 새로운 파일 크기를 나타내며 현재 파일 크기보다 커야 합니다.

      주 파일의 size를 지정하지 않으면 SQL Server 2005 데이터베이스 엔진에서는 model 데이터베이스에 있는 주 파일의 크기를 사용합니다. 보조 데이터 파일 또는 로그 파일을 지정하고 해당 파일의 size 를 지정하지 않으면 데이터베이스 엔진에서 파일 크기를 1MB로 지정합니다.

      KB, MB, GB 및 TB는 각각 킬로바이트, 메가바이트, 기가바이트, 테라바이트를 의미하는 접미사입니다. 기본값은 MB입니다. 소수점을 포함하지 않은 정수를 지정합니다. 소수로 된 MB 값을 지정하려면 1024를 곱하여 값을 KB로 변환합니다. 예를 들어 1.5MB인 경우 1536KB(1.5 x 1024 = 1536)를 지정합니다.

  • MAXSIZE { max_size| UNLIMITED }
    파일을 확장할 수 있는 최대 크기를 지정합니다.

    • max_size
      파일의 최대 크기입니다. KB, MB, GB 및 TB는 각각 킬로바이트, 메가바이트, 기가바이트, 테라바이트를 의미하는 접미사입니다. 기본값은 MB입니다. 소수점을 포함하지 않은 정수를 지정합니다. max_size를 지정하지 않으면 디스크가 꽉 찰 때까지 파일 크기가 늘어납니다.
    • UNLIMITED
      디스크가 꽉 찰 때까지 파일이 확장되도록 지정합니다. SQL Server 2005에서 무제한 확장이 허용된 경우 로그 파일의 최대 크기는 2TB이고 데이터 파일의 최대 크기는 16TB입니다.
  • FILEGROWTH growth_increment
    파일의 자동 증가분을 지정합니다. 파일에 대한 FILEGROWTH 설정은 MAXSIZE 설정을 초과할 수 없습니다.

    • growth_increment
      공간이 새로 필요할 때마다 파일에 추가되는 공간의 양입니다.

      값은 MB, KB, GB, TB 또는 백분율(%)로 지정할 수 있습니다. MB, KB 또는 % 등의 접미사를 붙이지 않고 숫자를 지정하면 MB가 기본값이 됩니다. %를 지정하면 증가분 크기는 파일이 늘어나는 시점에서 파일 크기에 대한 지정된 비율입니다. 지정한 크기는 64KB 단위로 반올림됩니다.

      값 0은 자동 증가를 사용하지 않고 추가 공간을 허용하지 않음을 나타냅니다.

      FILEGROWTH를 지정하지 않으면 데이터 파일에 대해 1MB, 로그 파일에 대해 10%의 기본값이 적용되며 최소값은 64KB입니다.

      [!참고] SQL Server 2005에서 데이터 파일의 기본 증가분은 10%에서 1MB로 변경되었습니다. 로그 파일의 기본값 10%는 그대로 유지됩니다.

  • OFFLINE
    파일을 오프라인으로 설정하고 파일 그룹 내의 모든 개체를 액세스할 수 없도록 합니다.

    ms174269.Caution(ko-kr,SQL.90).gif주의:
    파일이 손상되고 복원이 가능한 경우에만 이 옵션을 사용하십시오. OFFLINE으로 설정된 파일은 해당 파일을 백업에서 복원해야만 온라인 상태로 설정할 수 있습니다. 단일 파일 복원 방법은 RESTORE(Transact-SQL)를 참조하십시오.
<add_or_modify_filegroups>::=

데이터베이스의 파일 그룹을 추가, 수정 또는 제거합니다.

  • ADD FILEGROUP filegroup_name
    데이터베이스에 파일 그룹을 추가합니다.
  • REMOVE FILEGROUP filegroup_name
    데이터베이스에서 파일 그룹을 제거합니다. 파일 그룹은 비어 있어야 제거할 수 있습니다. 먼저 파일 그룹에서 모든 파일을 제거합니다. 자세한 내용은 이 항목의 앞부분에 나오는 "REMOVE FILE logical_file_name"을 참조하십시오.
  • MODIFY FILEGROUP filegroup_name { <filegroup_updatability_option> | DEFAULT | NAME **=**new_filegroup_name }
    파일 그룹 상태를 READ_ONLY 또는 READ_WRITE로 설정하고 파일 그룹을 데이터베이스에 대한 기본 파일 그룹으로 설정하거나 파일 그룹 이름을 바꿔 파일 그룹을 수정합니다.

    • <filegroup_updatability_option>
      파일 그룹에 대한 읽기 전용 또는 읽기/쓰기 속성을 설정합니다.
    • DEFAULT
      기본 데이터베이스 파일 그룹을 filegroup_name으로 변경합니다. 데이터베이스에서 한 개의 파일 그룹만 기본 파일 그룹이 될 수 있습니다. 자세한 내용은 파일 및 파일 그룹 이해를 참조하십시오.
    • NAME = new_filegroup_name
      파일 그룹 이름을 new_filegroup_name으로 변경합니다.
<filegroup_updatability_option>::=

파일 그룹에 대한 읽기 전용 또는 읽기/쓰기 속성을 설정합니다.

  • READ_ONLY | READONLY
    파일 그룹을 읽기 전용으로 지정합니다. 해당 파일 그룹의 개체를 업데이트할 수 없습니다. 주 파일 그룹은 읽기 전용으로 만들 수 없습니다. 이 상태를 변경하려면 데이터베이스에 대한 배타적 액세스 권한이 있어야 합니다. 자세한 내용은 SINGLE_USER 절을 참조하십시오.

    읽기 전용 데이터베이스는 데이터 수정을 허용하지 않기 때문에 다음과 같은 특성을 포함합니다.

    • 시스템 시작 시 자동 복원을 하지 않습니다.
    • 데이터베이스 축소가 불가능합니다.
    • 읽기 전용 데이터베이스에서는 잠금이 발생하지 않습니다. 따라서 쿼리 성능은 더 향상될 수 있습니다.

    [!참고] READONLY 키워드는 나중 버전의 Microsoft SQL Server에서 제거될 예정입니다. 향후 개발 작업에서는 READONLY를 사용하지 않도록 하고 현재 READONLY를 사용하는 응용 프로그램은 수정하십시오. 대신 READ_ONLY를 사용하십시오.

  • READ_WRITE | READWRITE
    파일 그룹을 READ_WRITE로 지정합니다. 해당 파일 그룹의 개체를 업데이트할 수 있습니다. 이 상태를 변경하려면 데이터베이스에 대해 배타적 액세스 권한이 있어야 합니다. 자세한 내용은 SINGLE_USER 절을 참조하십시오.

    [!참고] READWRITE 키워드는 나중 버전의 Microsoft SQL Server에서 제거될 예정입니다. 향후 개발 작업에서는 READWRITE를 사용하지 않도록 하고 현재 READWRITE를 사용하는 응용 프로그램은 수정하십시오. 대신 READ_WRITE를 사용하십시오.

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

<db_state_option>::=

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

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

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

RESTORING으로 표시된 데이터베이스는 OFFLINE, ONLINE 또는 EMERGENCY로 설정할 수 없습니다. 활성 복원 작업 중이나 데이터베이스 또는 로그 파일의 복원 작업이 손상된 백업 파일로 인해 실패할 경우 데이터베이스가 RESTORING 상태일 수 있습니다. 자세한 내용은 손상된 백업에 의해 발생한 SQL Server 복원 오류에 응답을 참조하십시오.

<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 동적 관리 뷰를 쿼리하여 활성 비동기 통계 작업을 검사합니다.
    3. 활성 작업이 있을 경우 KILL STATS JOB을 사용하여 해당 작업을 완료하도록 허용하거나 수동으로 종료합니다.
  • RESTRICTED_USER
    RESTRICTED_USER는 db_owner 고정 데이터베이스 역할 및 dbcreatorsysadmin 고정 서버 역할의 멤버만 데이터베이스로의 연결을 허용하지만 연결되는 수는 제한하지 않습니다. 데이터베이스에 대한 모든 연결은 ALTER DATABASE 문의 termination 절에 지정된 시간대에서 끊어집니다. 데이터베이스가 RESTRICTED_USER 상태로 바뀐 후에는 자격이 없는 사용자의 연결 시도는 거부됩니다.
  • MULTI_USER
    데이터베이스에 연결할 수 있는 적절한 권한이 있는 모든 사용자의 연결을 허용합니다.

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

<db_update_option>::=

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

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

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

<external_access_option>::=

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

  • DB_CHAINING { ON | OFF }

    • ON
      데이터베이스가 데이터베이스 간 소유권 체인의 원본이나 대상이 될 수 있습니다.
    • OFF
      데이터베이스가 데이터베이스 간 소유권 체인에 참여할 수 없습니다.
    ms174269.note(ko-kr,SQL.90).gif중요:
    SQL Server 인스턴스는 cross db ownership chaining 서버 옵션이 0(OFF)일 때 이 설정을 인식합니다. cross db ownership chaining이 1(ON)이면 모든 사용자 데이터베이스는 이 옵션 값에 관계없이 데이터베이스 간 소유권 체인에 참여할 수 있습니다. 이 옵션은 sp_configure를 사용하여 설정합니다.

    이 옵션을 설정하려면 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다. DB_CHAINING 옵션은 master, modeltempdb 시스템 데이터베이스에서는 설정할 수 없습니다.

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

    자세한 내용은 소유권 체인을 참조하십시오.

  • TRUSTWORTHY { ON | OFF }

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

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

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

    이 옵션을 설정하려면 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

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

<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 속성을 검사하여 확인할 수 있습니다.

<auto_option>::=

자동 옵션을 제어합니다.

  • AUTO_CLOSE { ON | OFF }

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

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

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

    AUTO_CLOSE 옵션을 사용하면 데이터베이스 파일을 일반 파일처럼 다룰 수 있기 때문에 데스크톱 데이터베이스에서 유용합니다. 데이터베이스 파일을 이동하거나 복사하여 백업본을 만들 수도 있고 다른 사용자에게 전자 우편으로 보낼 수도 있습니다.

    [!참고] 이전 버전의 SQL Server에서 AUTO_CLOSE는 동기 프로세스이기 때문에 데이터베이스 엔진에 연결과 연결 해제를 반복하는 응용 프로그램이 데이터베이스에 액세스하는 경우 성능이 저하될 수 있습니다. SQL Server 2005에서 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
      쿼리 최적화에 필요한 통계 중 누락된 통계가 쿼리 최적화 동안 모두 자동으로 작성됩니다.

      통계를 추가하면 SQL Server 쿼리 최적화 프로그램이 쿼리 평가 방법을 더 잘 결정할 수 있기 때문에 쿼리 성능이 향상됩니다. 통계가 사용되지 않으면 데이터베이스 엔진에서 자동으로 해당 통계를 삭제합니다. OFF로 설정하면 통계가 자동으로 작성되지 않으며 대신 통계를 수동으로 만들 수 있습니다. 자세한 내용은 인덱스 통계를 참조하십시오.

    • OFF
      통계를 수동으로 만들어야 합니다.

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

    [!참고] 쿼리 최적화 프로그램은 실제 설정에 관계없이 AUTO_CREATE_STATISTICS가 ON으로 설정된 것으로 간주하고 모든 내부 시스템 테이블을 처리합니다. 이러한 테이블에는 시스템 기본 테이블, XML 인덱스, 전체 텍스트 인덱스, Service Broker 큐 테이블 및 쿼리 알림 테이블이 포함됩니다.

  • AUTO_SHRINK { ON | OFF }

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

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

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

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

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

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

  • AUTO_UPDATE_STATISTICS { ON | OFF }

    • ON
      쿼리 최적화에 필요한 통계 중 날짜가 지난 통계가 쿼리 최적화 동안 모두 자동으로 업데이트됩니다.
    • OFF
      통계를 수동으로 업데이트해야 합니다.

    [!참고] NORECOMPUTE 절이 지정되지 않은 경우 UPDATE STATISTICS 문은 대상 테이블 또는 뷰의 자동 통계 업데이트가 다시 가능하도록 합니다.

    [!참고] 쿼리 최적화 프로그램은 실제 설정에 관계없이 AUTO_UPDATE_STATISTICS가 ON으로 설정된 것으로 간주하고 모든 내부 시스템 테이블을 처리합니다. 이러한 테이블에는 시스템 기본 테이블, XML 인덱스, 전체 텍스트 인덱스, Service Broker 큐 테이블 및 쿼리 알림 테이블이 포함됩니다.

    자세한 내용은 인덱스 통계를 참조하십시오.

  • AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }

    • ON
      날짜가 지난 통계의 자동 업데이트를 시작하는 쿼리는 컴파일 전에 통계가 업데이트되기를 기다리지 않습니다. 업데이트된 통계를 이용할 수 있으면 후속 쿼리는 업데이트된 통계를 사용하게 됩니다.
    • OFF
      날짜가 지난 통계의 자동 업데이트를 시작하는 쿼리가 업데이트된 통계를 쿼리 최적화 계획에 사용할 수 있을 때까지 기다립니다.

    이 옵션을 ON으로 설정해도 AUTO_UPDATE_STATISTICS가 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로 평가됩니다.

    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로 지정하면 이 설정은 새 열의 정의에만 영향을 줍니다.

    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)을 참조하십시오.

    ms174269.note(ko-kr,SQL.90).gif중요:
    ANSI_PADDING은 항상 ON으로 설정하는 것이 좋습니다. 계산 열이나 인덱싱된 뷰에서 인덱스를 만들거나 조작할 때는 ANSI_PADDING을 ON으로 설정해야 합니다.

    이 옵션의 상태는 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 속성을 검사하여 확인할 수 있습니다.

  • CONCAT_NULL_YIELDS_NULL { ON | OFF }

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

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

    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 속성을 검사하여 확인할 수 있습니다.

<recovery_option> ::=

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

  • FULL
    미디어 오류가 발생한 후에는 트랜잭션 로그 백업을 사용하여 전체 복구를 제공합니다. 데이터 파일이 손상된 경우 미디어 복구 기능을 통해 커밋된 트랜잭션을 모두 복원할 수 있습니다. 자세한 내용은 전체 복구 모델에서의 백업을 참조하십시오.
  • BULK_LOGGED
    미디어 오류가 발생한 후에 일부 대량 작업에 대해 성능은 좋고 로그 공간 사용량은 적은 방법으로 복구를 제공합니다. 대량 로그되는 작업에 대한 자세한 내용은 최소 로그 작업을 참조하십시오. BULK_LOGGED 복구 모델에서는 이러한 작업에 대해서 최소 로깅이 사용됩니다. 자세한 내용은 대량 로그 복구 모델에서의 백업을 참조하십시오.
  • SIMPLE
    최소 로그 공간을 사용하는 단순 백업 전략을 제공합니다. 서버 오류 복구에 더 이상 필요 없는 로그 공간은 자동으로 재사용됩니다. 자세한 내용은 단순 복구 모델에서의 백업을 참조하십시오.

    ms174269.note(ko-kr,SQL.90).gif중요:
    단순 복구 모델은 다른 두 모델보다 관리하기는 쉽지만 데이터 파일이 손상된 경우 데이터 손실 위험은 더 큽니다. 최신 데이터베이스 또는 차등 데이터베이스 백업이 손실되어 변경 사항은 모두 수동으로 다시 입력해야 합니다.

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

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

  • TORN_PAGE_DETECTION { ON | OFF }

    • ON
      데이터베이스 엔진에서 완료되지 않은 페이지를 검색할 수 있습니다.
    • OFF
      데이터베이스 엔진에서 완료되지 않은 페이지를 검색할 수 없습니다.
    ms174269.note(ko-kr,SQL.90).gif중요:
    TORN_PAGE_DETECTION ON | OFF 구문 구조는 나중 버전의 Microsoft 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바이트 섹터에 대해 특정 비트를 데이터베이스 페이지 머리글에 저장합니다. 디스크에서 페이지를 읽을 때 페이지 머리글에 저장된 조각난 비트가 실제 페이지 섹터 정보와 비교됩니다. 값이 일치하지 않으면 페이지의 일부분만 디스크에 쓰여졌음을 의미합니다. 이 경우 조각난 페이지 오류를 나타내는 824 오류 메시지가 SQL Server 오류 로그와 Windows 이벤트 로그에 보고됩니다. 조각난 페이지가 실제로 쓰기가 완료되지 않은 페이지인 경우 조각난 페이지는 보통 데이터베이스 복구에서 검색됩니다. 그러나 다른 I/O 경로 오류도 언제든 조각난 페이지의 원인이 될 수 있습니다.
    • NONE
      데이터베이스 페이지 쓰기에서 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 생성되지 않습니다. SQL Server는 페이지 머리글에 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 있는 경우에도 읽기 중 체크섬이나 조각난 페이지를 확인하지 않습니다.

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

    • SQL Server 2005에서 CHECKSUM입니다. SQL Server 2000에서는 TORN_PAGE_DETECTION이 기본값입니다.
    • 사용자 또는 시스템 데이터베이스를 SQL Server 2005로 업그레이드하는 경우 PAGE_VERIFY 값(NONE 또는 TORN_PAGE_DETECTION)이 유지됩니다. 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 속성을 검사하여 확인할 수 있습니다.

<database_mirroring_option>::=

데이터베이스에 대한 데이터베이스 미러링을 제어합니다. 데이터베이스 미러링 옵션에 지정한 값은 두 개의 데이터베이스 복사본 및 데이터베이스 미러링 세션에 전체적으로 적용됩니다. ALTER DATABASE 문당 하나의 <database_mirroring_option>만 허용됩니다. 구문은 { SET PARTNER <partner_option> | SET WITNESS <witness_option>}입니다.

ms174269.note(ko-kr,SQL.90).gif중요:
SET PARTNER 또는 SET WITNESS 명령은 입력 시 성공적으로 완료될 수 있지만 나중에 실패합니다.

[!참고] 구성이 성능에 영향을 줄 수 있으므로 사용률이 낮은 시간에 데이터베이스 미러링을 구성하는 것이 좋습니다.

데이터베이스 미러링에 대한 대한 자세한 내용은 데이터베이스 미러링을 참조하십시오.

  • PARTNER <partner_option>
    데이터베이스 미러링 세션의 장애 조치(Failover) 파트너 및 이들의 동작을 정의하는 데이터베이스 속성을 제어합니다. SET PARTNER 옵션에는 주 서버 또는 미러 서버로 제한되는 옵션과 어느 파트너에든 설정할 수 있는 옵션이 있습니다. 자세한 내용은 다음의 개별 PARTNER 옵션을 참조하십시오. SET PARTNER 절은 지정된 파트너에 관계없이 데이터베이스 복사본 양쪽 모두에 영향을 줍니다.

    SET PARTNER 문을 실행하려면 두 파트너의 끝점에 대한 STATE가 STARTED로 설정되어 있어야 합니다. 또한 각 파트너 서버 인스턴스에 대한 데이터베이스 미러링 끝점의 ROLE이 PARTNER 또는 ALL로 설정되어 있어야 합니다. 끝점을 지정하는 방법은 방법: Windows 인증에 대한 미러링 끝점 만들기(Transact-SQL)를 참조하십시오. 서버 인스턴스에 대한 데이터베이스 미러링 끝점의 역할 및 상태를 확인하려면 해당 인스턴스에서 다음 Transact-SQL 문을 사용하십시오.

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    <partner_option> ::=

    [!참고] SET PARTNER 절당 하나의 <partner_option>만 허용됩니다.

    • 'partner_server'
      SQL Server 인스턴스의 서버 네트워크 주소가 새 데이터베이스 미러링 세션에서 장애 조치 파트너로 작동하도록 지정합니다. 각 세션에는 각각 주 서버와 미러 서버로 시작할 두 개의 파트너가 필요합니다. 각 파트너는 다른 컴퓨터에 있는 것이 좋습니다.

      이 옵션은 각 파트너에서 세션당 한 번 지정합니다. 데이터베이스 미러링 세션을 시작하려면 두 개의 ALTER DATABASE database SET PARTNER ='partner_server' 문이 필요합니다. 순서가 중요합니다. 먼저 미러 서버에 연결하고 주 서버 인스턴스를 partner_server (SET PARTNER ='principal_server')로 지정합니다. 두 번째로 주 서버에 연결하고 미러 서버 인스턴스를 partner_server (SET PARTNER ='mirror_server')로 지정합니다. 이렇게 하면 두 파트너 간에 데이터베이스 미러링 세션이 시작됩니다. 자세한 내용은 데이터베이스 미러링 설정를 참조하십시오.

      partner_server의 값은 서버 네트워크 주소입니다. 구문은 다음과 같습니다.

      TCP**://<system-address>:**<port>

      여기서 각 부분의 의미는 다음과 같습니다.

      • *<system-address>*는 대상 컴퓨터 시스템을 명확하게 식별하는 시스템 이름, 정규화된 도메인 이름 또는 IP 주소 등의 문자열입니다.
      • *<port>*는 파트너 서버 인스턴스의 미러링 끝점과 연결된 포트 번호입니다.

      자세한 내용은 서버 네트워크 주소 지정(데이터베이스 미러링)을 참조하십시오.

      다음 예에서는 SET PARTNER ='partner_server' 절을 보여 줍니다.

      SET PARTNER = 'TCP://MYSERVER.mydomain.Adventure-Works.com:7777'
      
      ms174269.note(ko-kr,SQL.90).gif중요:
      SQL Server Management Studio 대신 ALTER DATABASE 문을 사용하여 세션을 설정한 경우 이 세션은 기본적으로 전체 트랜잭션 보안으로 설정(SAFETY가 FULL로 설정됨)되며 자동 장애 조치(Failover) 없는 보호 우선 모드에서 실행됩니다. 자동 장애 조치를 허용하려면 미러링 모니터 서버를 구성하고 성능 우선 모드로 실행하려면 트랜잭션 보안을 해제합니다(SAFETY OFF).
    • FAILOVER
      수동으로 주 서버에서 미러 서버로 장애 조치를 수행합니다. FAILOVER는 주 서버에서만 지정할 수 있습니다. 이 옵션은 SAFETY가 기본값인 FULL로 설정되어 있는 경우에만 유효합니다.

      FAILOVER 옵션은 master를 데이터베이스 컨텍스트로 사용해야 합니다.

      자세한 내용은 수동 장애 조치(Failover)를 참조하십시오.

    • FORCE_SERVICE_ALLOW_DATA_LOSS
      주 서버에서 동기화되지 않은 상태 또는 자동 장애 조치가 수행되지 않는 경우 동기화된 상태의 데이터베이스에 대해 오류가 발생한 경우 데이터베이스 서비스를 미러 데이터베이스에 강제 실행합니다.

      주 서버가 더 이상 실행되지 않는 경우에만 서비스를 강제 실행하는 것이 좋습니다. 그렇지 않은 경우 일부 클라이언트가 새로운 주 데이터베이스가 아닌 원래 주 데이터베이스에 계속 액세스할 수 있습니다.

      FORCE_SERVICE_ALLOW_DATA_LOSS는 다음 조건이 모두 충족된 경우 미러 서버에서만 사용할 수 있습니다.

      • 주 서버가 다운되었습니다.
      • WITNESS가 OFF로 설정되어 있거나 미러링 모니터가 미러 서버에 연결되어 있습니다.

      데이터베이스로 서비스를 즉시 복원하기 위해 일부 데이터가 손실되는 위험을 감수하려는 경우에만 서비스를 강제 실행하십시오. 서비스 강제 실행의 대안에 대한 자세한 내용은 비동기 데이터베이스 미러링(성능 우선 모드)을 참조하십시오.

      서비스를 강제로 실행하면 세션이 일시 중지되며 원래 주 데이터베이스의 모든 데이터가 임시로 보존됩니다. 원래 주 데이터베이스가 작동하고 새로운 주 서버와 통신할 수 있게 되면 데이터베이스 관리자가 서비스를 재개할 수 있습니다. 세션이 재개되면 보내지 않은 로그 레코드와 해당 업데이트는 손실됩니다.

      서비스 강제 실행 시의 위험에 대한 자세한 내용은 강제 서비스(데이터 손실 가능)를 참조하십시오.

    • OFF
      데이터베이스 미러링 세션을 제거하고 데이터베이스에서 미러링을 제거합니다. OFF는 어느 파트너에나 지정할 수 있습니다. 미러링 제거에 따른 영향에 대한 자세한 내용은 데이터베이스 미러링 제거를 참조하십시오.
    • RESUME
      일시 중지된 데이터베이스 미러링 세션을 재개합니다. RESUME은 주 서버에서만 지정할 수 있습니다.
    • SAFETY { FULL | OFF }
      트랜잭션 보안의 수준을 설정합니다. SAFETY는 주 서버에서만 지정할 수 있습니다.

      기본값은 FULL입니다. 전체 보안을 사용하면 데이터베이스 미러링 세션이 동기적으로 실행됩니다(보호 우선 모드). SAFETY를 OFF로 설정하면 데이터베이스 미러링 세션이 비동기적으로 실행됩니다(성능 우선 모드).

      보호 우선 모드의 동작은 부분적으로 미러링 모니터 서버에 따라 다음과 같이 달라집니다.

      • SAFETY를 FULL로 설정하고 세션에 대한 미러링 모니터를 설정하면 세션은 자동 장애 조치(Failover) 있는 보호 우선 모드로 실행됩니다. 주 서버가 손실되면 데이터베이스가 동기화되고 미러 서버 인스턴스 및 미러링 모니터 서버가 서로 연결되어 있는 경우(쿼럼이 있는 경우) 세션이 자동으로 장애 조치됩니다. 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향를 참조하십시오.
        세션에 대해 미러링 모니터가 설정되어 있지만 현재 연결되어 있지 않은 경우, 미러 서버가 없으면 주 서버의 작동이 중단됩니다.
      • SAFETY를 FULL로 설정하고 WITNESS를 OFF로 설정하면 세션이 자동 장애 조치(Failover) 없는 보호 우선 모드로 실행됩니다. 미러 서버 인스턴스의 작동이 중단되더라도 주 서버 인스턴스는 아무런 영향을 받지 않습니다. 주 서버 인스턴스의 작동이 중단되면 미러 서버 인스턴스에서 서비스를 강제 실행할 수 있습니다(데이터 손실 가능).

      SAFETY를 OFF로 설정하면 세션은 성능 우선 모드로 실행되며 자동 장애 조치와 수동 장애 조치가 지원되지 않습니다. 그러나 미러 서버에서 발생한 문제가 주 서버에 영향을 주지 않으므로 WITNESS를 OFF로 설정하거나 미러링 모니터가 현재 미러에 연결되어 있으면 주 서버 인스턴스의 작동이 중단될 경우 필요에 따라 미러 서버 인스턴스에서 서비스를 강제 실행할 수 있습니다(데이터 손실 가능). 서비스 강제 실행에 대한 자세한 내용은 이 섹션의 앞부분에 나오는 "FORCE_SERVICE_ALLOW_DATA_LOSS"를 참조하십시오.

      ms174269.note(ko-kr,SQL.90).gif중요:
      성능 우선 모드는 미러링 모니터 사용을 고려한 모드가 아닙니다. 그러나 SAFETY를 OFF로 설정할 때마다 WITNESS를 OFF로 설정하는 것이 좋습니다.

      자세한 내용은 Transact-SQL 설정 및 데이터베이스 미러링 작업 모드를 참조하십시오.

    • SUSPEND
      데이터베이스 미러링 세션을 일시 중지합니다.

      SUSPEND는 어느 파트너에나 지정할 수 있습니다.

    • TIMEOUT integer
      제한 시간(초)을 지정합니다. 제한 시간은 서버 인스턴스가 미러링 세션 내의 다른 인스턴스로부터 PING 메시지를 받기까지 기다리는 최대 시간으로 이 시간이 경과하면 해당 인스턴스의 연결이 끊어진 것으로 간주합니다.

      TIMEOUT 옵션은 주 서버에서만 지정할 수 있습니다. 이 옵션을 지정하지 않으면 기본적으로 제한 시간은 10초로 설정됩니다. 5 이상을 지정하면 제한 시간은 지정한 초 수로 설정됩니다. 0에서 4까지의 수로 지정하면 제한 시간은 자동으로 5초로 설정됩니다.

      ms174269.note(ko-kr,SQL.90).gif중요:
      제한 시간을 10초 이상으로 유지하는 것이 좋습니다. 10초 미만의 값을 설정하면 로드가 많은 시스템에서 PING을 누락하여 잘못된 실패를 선언할 수 있습니다.

      자세한 내용은 데이터베이스 미러링 중에 발생 가능한 오류를 참조하십시오.

  • WITNESS <witness_option>
    데이터베이스 미러링 모니터를 정의하는 데이터베이스 속성을 제어합니다. SET WITNESS 절은 데이터베이스 복사본 양쪽 모두에 영향을 주지만 SET WITNESS는 주 서버에서만 지정할 수 있습니다. 세션에 대해 미러링 모니터가 설정되어 있으면 SAFETY 설정에 관계없이 데이터베이스를 실행하려면 쿼럼이 있어야 합니다. 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향을 참조하십시오.

    미러링 모니터와 장애 조치 파트너는 별도의 컴퓨터에 있는 것이 좋습니다. 미러링 모니터에 대한 자세한 내용은 데이터베이스 미러링 모니터 서버을 참조하십시오. 자동 장애 조치에 대한 자세한 내용은 자동 장애 조치(Failover)를 참조하십시오.

    SET WITNESS 문을 실행하려면 주 서버 인스턴스와 미러링 모니터 서버 인스턴스의 끝점에 대한 STATE가 STARTED로 설정되어 있어야 합니다. 또한 미러링 모니터 서버 인스턴스의 데이터베이스 미러링 끝점 ROLE이 WITNESS 또는 ALL로 설정되어 있어야 합니다. 끝점 지정에 대한 자세한 내용은 데이터베이스 미러링 끝점을 참조하십시오.

    서버 인스턴스에 대한 데이터베이스 미러링 끝점의 역할 및 상태를 확인하려면 해당 인스턴스에서 다음 Transact-SQL 문을 사용하십시오.

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    [!참고] 미러링 모니터에서는 데이터베이스 속성을 설정할 수 없습니다.

    <witness_option> ::=

    [!참고] SET WITNESS 절당 하나의 <witness_option>만 허용됩니다.

    • 'witness_server'
      데이터베이스 엔진 인스턴스를 데이터베이스 미러링 세션에 대한 미러링 모니터 서버로 작동하도록 지정합니다. SET WITNESS 문은 주 서버에서만 지정할 수 있습니다.

      SET WITNESS ='witness_server' 문에서 witness_server 구문은 partner_server의 구문과 동일합니다.

    • OFF
      데이터베이스 미러링 세션에서 미러링 모니터를 제거합니다. 미러링 모니터를 OFF로 설정하면 자동 장애 조치가 해제됩니다. 데이터베이스가 FULL SAFETY로 설정되어 있고 미러링 모니터가 OFF인 경우 미러 서버에 오류가 발생하면 주 서버는 데이터베이스를 사용할 수 없도록 합니다.
<service_broker_option>::=

Service Broker 옵션을 제어합니다.

  • ENABLE_BROKER
    지정된 데이터베이스에 대해 Service Broker가 설정되도록 지정합니다. sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 true로 설정되며 메시지 배달이 시작됩니다.

    [!참고] 임의의 데이터베이스에서 SQL Server Service Broker를 설정하려면 데이터베이스 잠금이 필요합니다. msdb 데이터베이스에서 Service Broker를 설정하려면 먼저 SQL Server 에이전트를 중지하여 Service Broker에서 필요한 잠금을 획득할 수 있도록 합니다.

  • DISABLE_BROKER
    지정된 데이터베이스에 대해 Service Broker가 해제되도록 지정합니다. sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 false로 설정되며 메시지 배달이 중지됩니다.
  • NEW_BROKER
    데이터베이스가 새 Broker 식별자를 받도록 지정합니다. 데이터베이스는 새 Service Broker가 될 것으로 간주되기 때문에 데이터베이스 내의 모든 기존 대화는 종료 대화 메시지 없이 즉시 제거됩니다.
  • ERROR_BROKER_CONVERSATIONS
    데이터베이스 연결 시 데이터베이스 내의 대화에서 오류 메시지를 받도록 지정합니다. 이렇게 하면 응용 프로그램에서 기존 대화에 대해 일반적인 정리 작업을 수행할 수 있습니다.
<date_correlation_optimization_option> ::=

date_correlation_optimization 옵션을 제어합니다.

  • DATE_CORRELATION_OPTIMIZATION { ON | OFF }

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

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

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

<parameterization_option> ::=

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

  • PARAMETERIZATION { SIMPLE | FORCED }

    • SIMPLE
      데이터베이스의 기본 동작에 따라 쿼리를 매개 변수화합니다. 자세한 내용은 단순 매개 변수화를 참조하십시오.
    • FORCED
      SQL Server에서 데이터베이스의 모든 쿼리를 매개 변수화합니다. 자세한 내용은 강제 매개 변수화를 참조하십시오.

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

<snapshot_option>::=

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

  • ALLOW_SNAPSHOT_ISOLATION { ON| OFF }

    • ON
      트랜잭션을 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, msdbtempdb 데이터베이스에 대해 ALLOW_SNAPSHOT_ISOLATION 설정을 변경할 수 있습니다. tempdb에 대한 설정을 변경하면 이 설정은 데이터베이스 엔진 인스턴스가 중지 후 다시 시작할 때마다 유지됩니다. model 데이터베이스에 대한 설정을 변경하면 이 설정은 새로 생성된 모든 데이터베이스(tempdb 제외)의 기본값이 됩니다.

    mastermsdb 데이터베이스에 대해 이 옵션은 기본적으로 ON입니다.

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

  • READ_COMMITTED_SNAPSHOT { ON | OFF }

    • ON
      커밋된 읽기 격리 수준이 지정된 트랜잭션은 잠금 대신 행 버전 관리를 사용합니다. 트랜잭션이 커밋된 읽기 격리 수준에서 실행되면 모든 문에서 해당 문의 시작 시점 상태로 데이터의 스냅숏을 봅니다.
    • 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 열을 검사하여 확인할 수 있습니다.

WITH <termination>::=

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

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

  • ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
    지정한 시간(초)이 경과한 후 롤백할 것인지 또는 즉시 롤백할 것인지를 지정합니다.
  • NO_WAIT
    트랜잭션이 자체적으로 커밋되거나 롤백되기를 기다리지 않고 요청된 데이터베이스 상태 또는 옵션 변경을 즉시 완료할 수 없는 경우에 요청이 실패하도록 지정합니다.

주의

데이터베이스를 제거하려면 DROP DATABASE를 사용합니다.

데이터베이스의 이름을 바꾸려면 ALTER DATABASE에 MODIFY NAME = new_database_name 옵션을 사용합니다.

데이터베이스의 크기를 줄이려면 DBCC SHRINKDATABASE를 사용합니다.

BACKUP 문이 실행 중인 동안에는 파일을 추가 또는 제거할 수 없습니다.

각 데이터베이스에 대해 최대 32,767개의 파일과 32,767개의 파일 그룹을 지정할 수 있습니다.

ALTER DATABASE 문은 자동 커밋 모드(기본 트랜잭션 관리 모드)에서 실행되어야 하며 명시적 또는 암시적 트랜잭션에서는 허용되지 않습니다. 자세한 내용은 자동 커밋 트랜잭션을 참조하십시오.

SQL Server 2005에서 데이터베이스 파일의 상태(예: 온라인 또는 오프라인)는 데이터베이스의 상태와는 별도로 유지 관리됩니다. 자세한 내용은 파일 상태를 참조하십시오. 전체 파일 그룹의 가용성은 파일 그룹 내 파일의 상태에 따라 결정됩니다. 파일 그룹을 사용하려면 파일 그룹 내의 모든 파일이 온라인 상태여야 합니다. 파일 그룹이 오프라인 상태인 경우 SQL 문을 사용한 파일 그룹 액세스 시도는 오류가 발생하며 실패하게 됩니다. SELECT 문에 대한 쿼리 계획을 작성할 때 쿼리 최적화 프로그램은 오프라인 파일 그룹에 있는 비클러스터형 인덱스와 인덱싱된 뷰는 피함으로써 이러한 문이 성공하도록 합니다. 그러나 오프라인 파일 그룹에 대상 테이블의 힙이나 클러스터형 인덱스가 포함된 경우에는 SELECT 문이 실패합니다. 오프라인 파일 그룹의 인덱스를 사용하여 테이블을 수정하는 INSERT, UPDATE 또는 DELETE 문도 실패합니다.

데이터베이스가 RESTORING 상태에 있으면 ALTER DATABASE 문이 대부분 실패합니다. 단, 데이터베이스 미러링 옵션을 설정하는 경우는 예외입니다. 활성 복원 작업 중이나 데이터베이스 또는 로그 파일의 복원 작업이 손상된 백업 파일로 인해 실패할 경우 데이터베이스가 RESTORING 상태일 수 있습니다. 자세한 내용은 손상된 백업에 의해 발생한 SQL Server 복원 오류에 응답을 참조하십시오.

옵션 설정

데이터베이스 옵션에 대한 현재 설정을 검색하려면 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>

아니요

<database_mirroring_option>

아니요

아니요

ALLOW_SNAPSHOT_ISOLATION

아니요

아니요

READ_COMMITTED_SNAPSHOT

아니요

<service_broker_option>

아니요

DATE_CORRELATION_OPTIMIZATION

<parameterization_option>

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

OFFLINE

READ_WRITE

ONLINE

MODIFY FILEGROUP DEFAULT

MODIFY_NAME

MODIFY FILEGROUP READ_WRITE

COLLATE

MODIFY FILEGROUP READ_ONLY

READ_ONLY

 

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

파일 이동

SQL Server 2005에서는 FILENAME에 새 위치를 지정하여 시스템 또는 사용자 정의 데이터 및 로그 파일을 이동할 수 있습니다. 이는 다음과 같은 시나리오에서 유용합니다.

  • 오류 복구. 예를 들어 데이터베이스가 주의 대상 모드이거나 하드웨어 오류로 인해 종료된 경우입니다.
  • 계획된 재배치
  • 예약된 디스크 유지 관리를 위한 재배치

자세한 내용은 데이터베이스 파일 이동을 참조하십시오.

파일 초기화

기본적으로 데이터 및 로그 파일은 사용자가 다음 작업 중 하나를 수행할 때 0으로 채워져 초기화됩니다.

  • 데이터베이스 만들기
  • 기존 데이터베이스에 파일 추가
  • 기존 파일의 크기 증가
  • 데이터베이스 또는 파일 그룹 복원

SQL Server 2005에서는 데이터 파일을 즉시 초기화할 수 있기 때문에 이와 같은 파일 작업이 신속히 가능합니다. 자세한 내용은 데이터베이스 파일 초기화를 참조하십시오.

데이터베이스 데이터 정렬 변경

데이터베이스에 다른 데이터 정렬을 적용하기 전에 다음 조건이 충족되었는지 확인하십시오.

  1. 현재 데이터베이스를 사용하고 있는 다른 사용자가 없습니다.
  2. 데이터베이스의 데이터 정렬에 종속된 스키마 바운드 개체가 없습니다.
    데이터베이스 데이터 정렬에 종속되는 다음과 같은 개체가 데이터베이스에 있는 경우 ALTER DATABASE database_name COLLATE 문은 실패하게 됩니다. SQL Server는 ALTER 작업을 차단하는 각 개체에 대해 오류 메시지를 반환합니다.
    • SCHEMABINDING으로 생성된 사용자 정의 함수 및 뷰
    • 계산 열
    • CHECK 제약 조건
    • 기본 데이터베이스 데이터 정렬에서 상속 받은 데이터 정렬을 사용하는 문자 열이 있는 테이블을 반환하는 테이블 값의 함수
  3. 데이터베이스 데이터 정렬을 변경해도 데이터베이스 개체에 대한 시스템 이름이 중복되는 경우는 발생하지 않습니다.
    다음과 같은 네임스페이스는 데이터 정렬 변경 시에 중복 이름이 발생하면 데이터베이스 데이터 정렬 변경이 실패하도록 합니다.
    • 개체 이름(프로시저, 테이블, 트리거, 뷰 등)
    • 스키마 이름
    • 보안 주체(그룹, 역할, 사용자 등)
    • 스칼라 유형 이름(시스템 및 사용자 정의 유형)
    • 전체 텍스트 카탈로그 이름
    • 개체 내의 열 또는 매개 변수 이름
    • 테이블 내의 인덱스 이름
      새로운 데이터 정렬로 중복 이름이 생성되는 경우 변경 작업은 실패하게 되며 SQL Server는 중복이 발견된 네임스페이스를 지정하는 오류 메시지를 반환합니다.

데이터베이스 정보 보기

카탈로그 뷰, 시스템 함수 및 시스템 저장 프로시저를 사용하여 데이터베이스, 파일 및 파일 그룹에 대한 정보를 반환할 수 있습니다. 자세한 내용은 데이터베이스 메타데이터 보기를 참조하십시오.

사용 권한

데이터베이스에 대한 ALTER 권한이 필요합니다.

1. 데이터베이스에 파일 추가

다음 예에서는 AdventureWorks 데이터베이스에 5MB 데이터 파일을 추가합니다.

USE master;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);
EXECUTE (
'ALTER DATABASE AdventureWorks 
ADD FILE 
(
    NAME = Test1dat2,
    FILENAME = '''+ @data_path + 't1dat2.ndf'',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)'
);
GO

2. 데이터베이스에 두 개의 파일이 포함된 파일 그룹 추가

다음 예에서는 AdventureWorks 데이터베이스에 Test1FG1 파일 그룹을 만들고 이 파일 그룹에 두 개의 5MB 파일을 추가합니다.

USE master
GO
ALTER DATABASE AdventureWorks
ADD FILEGROUP Test1FG1;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);
EXECUTE (
'ALTER DATABASE AdventureWorks 
ADD FILE 
(
    NAME = test1dat3,
    FILENAME = '''+ @data_path + 't1dat3.ndf'',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1dat4,
    FILENAME = '''+ @data_path + 't1dat4.ndf'',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1'
);
GO

3. 데이터베이스에 두 개의 로그 파일 추가

다음 예에서는 AdventureWorks 데이터베이스에 두 개의 5MB 로그 파일을 추가합니다.

USE master;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);
EXECUTE (
'ALTER DATABASE AdventureWorks 
ADD LOG FILE 
(
    NAME = test1log2,
    FILENAME = '''+ @data_path + 'test2log.ldf'',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1log3,
    FILENAME = '''+ @data_path + 'test3log.ldf'',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)'
);
GO

4. 데이터베이스에서 파일 제거

다음 예에서는 2번 예에서 추가한 파일 중 하나를 제거합니다.

USE master;
GO
ALTER DATABASE AdventureWorks
REMOVE FILE test1dat4;
GO

5. 파일 수정

다음 예에서는 2번 예에서 추가한 파일 중 하나의 크기를 늘립니다.

USE master;
GO
ALTER DATABASE AdventureWorks 
MODIFY FILE
    (NAME = test1dat3,
    SIZE = 20MB);
GO

6. 파일을 새 위치로 이동

다음 예에서는 1번 예에서 만든 Test1dat2 파일을 새 디렉터리로 이동합니다.

[!참고] 이 예를 실행하기 전에 해당 파일을 새 디렉터리로 물리적으로 이동해야 합니다. 그 다음 SQL Server 인스턴스를 중지한 후 다시 시작하거나 AdventureWorks 데이터베이스를 OFFLINE으로 설정한 후 다시 ONLINE으로 되돌려 변경 사항을 적용합니다.

USE master;
GO
ALTER DATABASE AdventureWorks
MODIFY FILE
(
    NAME = Test1dat2,
    FILENAME = N'c:\t1dat2.ndf'
);
GO

7. tempdb를 새 위치로 이동

다음 예에서는 tempdb를 디스크의 현재 위치에서 다른 디스크 위치로 이동합니다. MSSQLSERVER 서비스를 시작할 때마다 tempdb가 다시 생성되므로 데이터와 로그 파일을 물리적으로 이동할 필요는 없습니다. 3단계에서 서비스를 다시 시작할 때 파일이 생성됩니다. 서비스를 다시 시작하기 전까지는 tempdb가 기존의 위치에서 작업을 수행합니다.

  1. tempdb 데이터베이스의 논리적 파일 이름 및 디스크에서 현재 위치를 결정합니다.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    GO
    
  2. ALTER DATABASE를 사용하여 각 파일의 위치를 변경합니다.

    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    ALTER DATABASE  tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLData\templog.ldf');
    GO
    
  3. SQL Server 인스턴스를 중지한 후 다시 시작합니다.

  4. 파일 변경 내용을 확인합니다.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    
  5. tempdb.mdf 및 templog.ldf 파일을 원래 위치에서 삭제합니다.

8. 기본 파일 그룹 설정

다음 예에서는 2번 예에서 만든 Test1FG1파일 그룹을 기본 파일 그룹으로 설정합니다. 그 다음 PRIMARY 파일 그룹을 기본 파일 그룹으로 다시 설정합니다. PRIMARY는 반드시 대괄호 또는 따옴표로 구분해야 합니다.

USE master;
GO
ALTER DATABASE AdventureWorks 
MODIFY FILEGROUP Test1FG1 DEFAULT;
GO
ALTER DATABASE AdventureWorks 
MODIFY FILEGROUP [PRIMARY] DEFAULT;
GO

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

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

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

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

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

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

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

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

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

USE AdventureWorks;
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'AdventureWorks';
GO
USE master;
GO
ALTER DATABASE AdventureWorks
    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'AdventureWorks';
GO

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

name            snapshot_isolation_state  description
--------------- ------------------------  -----------
AdventureWorks  1                         ON

12. 미러링 모니터가 있는 데이터베이스 미러링 세션 만들기

미러링 모니터가 있는 데이터베이스 미러링을 설정하려면 보안을 구성하고 미러 데이터베이스를 준비해야 하며 ALTER DATABASE를 사용하여 파트너를 설정해야 합니다. 전체 설정 과정은 데이터베이스 미러링 설정에 있는 예를 참조하십시오.

13. 데이터베이스 미러링 세션의 수동 장애 조치

수동 장애 조치는 데이터베이스 미러링 파트너 중 어느 쪽에서든 시작할 수 있습니다. 장애 조치를 수행하기 전에 현재 주 서버로 생각하고 있는 서버가 실제로 주 서버가 맞는지 확인하십시오. 예를 들어 AdventureWorks 데이터베이스인 경우 현재 주 서버라고 생각하는 서버 인스턴스에서 다음 쿼리를 실행합니다.

SELECT db.name, m.mirroring_role_desc 
FROM sys.database_mirroring m 
JOIN sys.databases db
ON db.database_id = m.database_id
WHERE db.name = N'AdventureWorks' 
GO

서버 인스턴스가 실제 주 서버이면 mirroring_role_desc 값은 Principal입니다. 서버 인스턴스가 미러 서버인 경우 SELECT 문은 Mirror를 반환합니다.

다음 예에서는 서버를 현재 주 서버로 간주합니다.

  1. 데이터베이스 미러링 파트너로의 수동 장애 조치를 수행합니다.

    ALTER DATABASE AdventureWorks SET PARTNER FAILOVER;
    GO
    
  2. 새 미러에서 장애 조치의 결과를 확인하려면 다음 쿼리를 수행합니다.

    SELECT name, mirroring_role_desc 
    FROM sys.databases WHERE name = N'AdventureWorks';
    GO
    

    mirroring_role_desc의 현재 값은 이제 Mirror입니다.

참고 항목

참조

CREATE DATABASE(Transact-SQL)
DATABASEPROPERTYEX(Transact-SQL)
DROP DATABASE(Transact-SQL)
SET TRANSACTION ISOLATION LEVEL(Transact-SQL)
EVENTDATA(Transact-SQL)
sp_configure(Transact-SQL)
sp_spaceused(Transact-SQL)
sys.databases(Transact-SQL)
sys.database_files(Transact-SQL)
sys.database_mirroring_witnesses(Transact-SQL)
sys.data_spaces(Transact-SQL)
sys.filegroups(Transact-SQL)
sys.master_files(Transact-SQL)

관련 자료

행 버전 관리 기반 격리 수준 설정
시스템 데이터베이스

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 주의의 "옵션 설정" 섹션과 AUTO_CLOSE 정의에 계획 캐시 삭제 옵션에 대한 정보를 추가했습니다.
  • SINGLE_USER 정의에 단일 사용자 모드로 AUTO_UPDATE_STATISTICS_ASYNC 옵션 사용에 대한 정보를 추가했습니다.

2006년 4월 14일

변경된 내용
  • FAILOVER 옵션에 대한 설명을 업데이트하여 master를 데이터베이스 컨텍스트로 사용해야 한다는 설명을 추가했습니다.
  • "<database_mirroring_option>" 섹션의 도입 부분에 중요 내용을 추가했습니다.
  • ALLOW_SNAPSHOT_ISOLATION 인수 아래에서 데이터베이스에 있는 스냅숏 격리 트랜잭션의 상태를 확인하는 방법 및 이 옵션을 변경할 경우 해당 상태가 SQL Server의 동작에 미치는 영향에 대한 정보를 업데이트했습니다.
  • DATE_CORRELATION_OPTIMIZATION의 정의를 수정했습니다.

2005년 12월 5일

새로운 내용
  • ENABLE_BROKER 정의에 참고를 추가했습니다.
  • 업그레이드된 데이터베이스에서 PAGE_VERIFY 옵션 수정에 대한 권장 구성을 추가했습니다.
변경된 내용
  • SUPPLEMENTAL_LOGGING 옵션을 제거했습니다.
  • 예 7을 수정했습니다.
  • 시스템 데이터베이스의 TRUSTWORTHY 옵션에 대한 정보를 수정했습니다.
  • 단일 사용자 모드가 필요하지 않음을 나타내기 위해 READ_COMMITTED_SNAPSHOT 정의를 업데이트했습니다.
  • 데이터베이스가 RESTORING 상태에 있을 경우 OFFLINE, ONLINE 및 EMERGENCY 옵션을 설정할 수 없음을 나타내기 위해 <db_state_option> 정의를 업데이트했습니다.