ALTER DATABASE SET 옵션(Transact-SQL)ALTER DATABASE SET Options (Transact-SQL)

SQL ServerSQL Server 및 Azure SQL Database의 데이터베이스 옵션을 설정합니다.Sets database options in SQL ServerSQL Server and Azure SQL Database. 다른 ALTER DATABASE 옵션은 ALTER DATABASE를 참조하세요.For other ALTER DATABASE options, see ALTER DATABASE.

작업 중인 특정 SQL 버전에 대한 구문, 인수, 설명, 사용 권한 및 예제를 보려면 다음 탭 중 하나를 클릭합니다.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular SQL version with which you are working.

구문 표기 규칙에 대한 자세한 내용은 Transact-SQL 구문 표기 규칙을 참조하십시오.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

데이터베이스 미러링, Always On 가용성 그룹Always On availability groups 및 호환성 수준은 SET 옵션이지만 길이 때문에 별도의 항목에서 설명합니다.Database mirroring, Always On 가용성 그룹Always On availability groups, and compatibility levels are SET options but are described in separate articles because of their length. 자세한 내용은 ALTER DATABASE 데이터베이스 미러링, ALTER DATABASE SET HADRALTER DATABASE 호환성 수준을 참조하세요.For more information, see ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADR, and ALTER DATABASE Compatibility Level.

참고

많은 데이터베이스 설정 옵션은 현재 세션에 SET 문을 사용하여 구성할 수 있으며 연결된 경우 일반적으로 응용 프로그램에 의해 구성됩니다.Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. 세션 수준 설정 옵션은 ALTER DATABASE SET 값을 재정의합니다.Session level set options override the ALTER DATABASE SET values. 아래에 설명된 데이터베이스 옵션은 다른 설정 옵션 값을 명시적으로 제공하지 않는 세션에 대해 설정할 수 있는 값입니다.The database options described below are values that can be set for sessions that do not explicitly provide other set option values.

구문Syntax

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

<option_spec> ::=   
{  
    <auto_option>   
  | <automatic_tuning_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>   
  | <delayed_durability_option>  
  | <external_access_option>  
  | FILESTREAM ( <FILESTREAM_option> )  
  | <HADR_options>  
  | <mixed_page_allocation_option>  
  | <parameterization_option>  
  | <query_store_options>  
  | <recovery_option>  
  | <remote_data_archive_option>  
  | <service_broker_option>  
  | <snapshot_option>  
  | <sql_option>   
  | <target_recovery_time_option>   
  | <termination>  
}  
;

<auto_option> ::=   
{  
    AUTO_CLOSE { ON | OFF }   
  | AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }   
  | AUTO_SHRINK { ON | OFF }   
  | AUTO_UPDATE_STATISTICS { ON | OFF }   
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }  
}  

<automatic_tuning_option> ::=  
{  
  AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { 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 }  

<delayed_durability_option> ::=  
    DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }  

<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  

<mixed_page_allocation_option> ::=  
    MIXED_PAGE_ALLOCATION { OFF | ON }  

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

<query_store_options> ::=  
{  
    QUERY_STORE   
    {  
          = OFF   
        | = ON [ ( <query_store_option_list> [,...n] ) ]  
        | ( < query_store_option_list> [,...n] )  
        | CLEAR [ ALL ]  
    }  
}   

<query_store_option_list> ::=  
{  
      OPERATION_MODE = { READ_WRITE | READ_ONLY }   
    | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )  
    | DATA_FLUSH_INTERVAL_SECONDS = number   
    | MAX_STORAGE_SIZE_MB = number   
    | INTERVAL_LENGTH_MINUTES = number   
    | SIZE_BASED_CLEANUP_MODE = [ AUTO | OFF ]  
    | QUERY_CAPTURE_MODE = [ ALL | AUTO | NONE ]  
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = [ ON | OFF ]
}  

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

<remote_data_archive_option> ::=  
{  
    REMOTE_DATA_ARCHIVE =  
    {  
        ON ( SERVER = <server_name> ,   
                  {   CREDENTIAL = <db_scoped_credential_name>  
                     | FEDERATED_SERVICE_ACCOUNT =  ON | OFF   
                  }  
               )  
      | OFF  
    }  
}  

<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 }  
  | MEMORY_OPTIMIZED_ELEVATE_TO_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 = { 140 | 130 | 120 | 110 | 100 | 90 }   
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }   
  | NUMERIC_ROUNDABORT { ON | OFF }   
  | QUOTED_IDENTIFIER { ON | OFF }   
  | RECURSIVE_TRIGGERS { ON | OFF }   
}  

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

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

인수Arguments

database_namedatabase_name
수정할 데이터베이스의 이름입니다.Is the name of the database to be modified.

CURRENTCURRENT
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

CURRENT는 현재 데이터베이스에서 작업을 수행합니다.CURRENT performs the action in the current database. 모든 컨텍스트의 모든 옵션에서 CURRENT가 지원되는 것은 아닙니다.CURRENT is not supported for all options in all contexts. CURRENT가 실패할 경우 데이터베이스 이름을 지정해야 합니다.If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

자동 옵션을 제어합니다.Controls automatic options.
AUTO_CLOSE { ON | OFF }AUTO_CLOSE { ON | OFF }
ONON
마지막 사용자가 사용을 끝낸 후 데이터베이스가 종료되고 해당 리소스가 해제됩니다.The database is shut down cleanly and its resources are freed after the last user exits.

사용자가 데이터베이스를 다시 사용하려고 하면(예:The database automatically reopens when a user tries to use the database again. USE database_name 문 사용) 데이터베이스가 자동으로 다시 열립니다.For example, by issuing a USE database_name statement. AUTO_CLOSE가 ON으로 설정되어 있는 상태에서 데이터베이스가 완전히 종료된 경우 다음 번에 사용자가 데이터베이스 엔진Database Engine을 다시 시작하고 데이터베이스 사용을 시도할 때까지 데이터베이스는 다시 열리지 않습니다.If the database is shut down cleanly while AUTO_CLOSE is set to ON, the database is not reopened until a user tries to use the database the next time the 데이터베이스 엔진Database Engine is restarted.

OFFOFF
마지막 사용자가 사용을 끝낸 후에도 데이터베이스는 열려 있는 상태가 됩니다.The database remains open after the last user exits.

AUTO_CLOSE 옵션을 사용하면 데이터베이스 파일을 일반 파일처럼 다룰 수 있기 때문에 데스크톱 데이터베이스에서 유용합니다.The AUTO_CLOSE option is useful for desktop databases because it allows for database files to be managed as regular files. 데이터베이스 파일을 이동하거나 복사하여 백업을 만들 수도 있고 다른 사용자에게 전자 메일로 보낼 수도 있습니다.They can be moved, copied to make backups, or even e-mailed to other users. AUTO_CLOSE 프로세스는 비동기 프로세스이므로 데이터베이스를 반복적으로 열고 닫아도 성능이 저하되지 않습니다.The AUTO_CLOSE process is asynchronous; repeatedly opening and closing the database does not reduce performance.

참고

포함된 데이터베이스 또는 SQL DatabaseSQL Database에서는 AUTO_CLOSE 옵션을 사용할 수 없습니다.The AUTO_CLOSE option is not available in a Contained Database or on SQL DatabaseSQL Database.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_close_on 열 또는 DATABASEPROPERTYEX 함수의 IsAutoClose 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_auto_close_on column in the sys.databases catalog view or the IsAutoClose property of the DATABASEPROPERTYEX function.

참고

AUTO_CLOSE가 ON으로 설정되어 있으면 sys.databases 카탈로그 뷰의 일부 열과 DATABASEPROPERTYEX 함수는 데이터베이스에서 데이터를 검색할 수 없는 경우 NULL을 반환합니다.When AUTO_CLOSE is ON, some columns in the sys.databases catalog view and DATABASEPROPERTYEX function will return NULL because the database is unavailable to retrieve the data. 이 문제를 해결하려면 USE 문을 실행하여 데이터베이스를 엽니다.To resolve this, execute a USE statement to open the database.

참고

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

데이터베이스가 AUTOCLOSE = ON으로 설정되어 있으면 자동 데이터베이스 종료를 시작하는 작업이 SQL ServerSQL Server 인스턴스에 대한 계획 캐시를 삭제합니다.When the database is set to AUTOCLOSE = ON, an operation that initiates an automatic database shutdown clears the plan cache for the instance of SQL ServerSQL Server. 계획 캐시를 삭제하면 모든 후속 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하될 수 있습니다.Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. SQL Server 2005SQL Server 2005 서비스 팩 2 이상에서는 계획 캐시의 삭제된 각 캐시스토어에 대해 SQL ServerSQL Server 오류 로그에 "데이터베이스 유지 관리 또는 재구성 작업으로 인해 '%s' 캐시스토어(계획 캐시의 일부)에 대한 캐시스토어 플러시가 SQL ServerSQL Server에서 %d번 발견되었습니다"라는 정보 메시지가 있습니다.In SQL Server 2005SQL Server 2005 Service Pack 2 and higher, for each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". 이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.This message is logged every five minutes as long as the cache is flushed within that time interval.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
쿼리 최적화 프로그램에서 필요에 따라 쿼리 조건자의 단일 열에 대한 통계를 생성하여 쿼리 계획 및 쿼리 성능을 향상시킵니다.The query optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. 쿼리 최적화 프로그램에서 쿼리를 컴파일할 때 이러한 단일 열 통계가 생성됩니다.These single-column statistics are created when the query optimizer compiles queries. 단일 열 통계는 기존 통계 개체의 첫 번째 열이 아닌 열에 대해서만 생성됩니다.The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

기본값은 ON입니다.The default is ON. 대부분의 데이터베이스의 경우 기본 설정을 사용하는 것이 좋습니다.We recommend that you use the default setting for most databases.

OFFOFF
쿼리 최적화 프로그램에서 쿼리를 컴파일할 때 쿼리 조건자의 단일 열에 대한 통계를 생성하지 않습니다.The query optimizer does not create statistics on single columns in query predicates when it is compiling queries. 이 옵션을 OFF로 설정하면 최적이 아닌 쿼리 계획을 사용하므로 쿼리 성능이 저하됩니다.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_create_stats_on 열 또는 DATABASEPROPERTYEX 함수의 IsAutoCreateStatistics 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_auto_create_stats_on column in the sys.databases catalog view or the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

자세한 내용은 통계 의 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하세요.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

INCREMENTAL = ON | OFFINCREMENTAL = ON | OFF
AUTO_CREATE_STATISTICS가 ON이고 INCREMENTAL이 ON으로 설정되면, 자동으로 생성되는 통계가 증분 통계가 지원될 때마다 증분으로 생성됩니다.When AUTO_CREATE_STATISTICS is ON, and INCREMENTAL is set to ON, automatically created stats are created as incremental whenever incremental stats is supported. 기본값은 OFF입니다.The default value is OFF. 자세한 내용은 CREATE STATISTICS를 참조하세요.For more information, see CREATE STATISTICS.

적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x)부터 SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
데이터베이스 파일이 주기적인 축소의 후보가 됩니다.The database files are candidates for periodic shrinking.

데이터 파일과 로그 파일 모두 자동으로 축소될 수 있습니다.Both data file and log files can be automatically shrunk. AUTO_SHRINK는 데이터베이스가 단순 복구 모델로 설정되거나 로그가 백업된 경우에만 트랜잭션 로그의 크기를 축소합니다.AUTO_SHRINK reduces the size of the transaction log only if the database is set to SIMPLE recovery model or if the log is backed up. 이 옵션이 OFF로 설정되면 사용되지 않는 공간을 정기적으로 검사하는 동안 데이터베이스 파일을 자동으로 축소하지 않습니다.When set to OFF, the database files are not automatically shrunk during periodic checks for unused space.

AUTO_SHRINK 옵션은 파일에서 사용되지 않는 공간이 25% 이상일 때 파일을 축소합니다.The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. 파일은 파일의 25%가 사용되지 않을 때의 크기 또는 파일이 만들어졌을 때의 크기 중 더 큰 크기로 축소됩니다.The file is shrunk to a size where 25 percent of the file is unused space, or to the size of the file when it was created, whichever is larger.

읽기 전용 데이터베이스는 축소할 수 없습니다.You cannot shrink a read-only database.

OFFOFF
사용되지 않는 공간을 정기적으로 검사하는 동안에는 데이터베이스 파일을 자동으로 축소하지 않습니다.The database files are not automatically shrunk during periodic checks for unused space.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_shrink_on 열 또는 DATABASEPROPERTYEX 함수의 IsAutoShrink 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_auto_shrink_on column in the sys.databases catalog view or the IsAutoShrink property of the DATABASEPROPERTYEX function.

참고

포함된 데이터베이스에서는 AUTO_SHRINK 옵션을 사용할 수 없습니다.The AUTO_SHRINK option is not available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
쿼리에서 통계를 사용하거나 통계가 최신이 아닐 때 쿼리 최적화 프로그램에서 통계를 업데이트하도록 지정합니다.Specifies that the query optimizer updates statistics when they are used by a query and when they might be out-of-date. 삽입, 업데이트, 삭제 또는 병합 작업을 통해 테이블이나 인덱싱된 뷰의 데이터 분포가 변경되면 통계 내용이 더 이상 최신이 아니게 됩니다.Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. 쿼리 최적화 프로그램은 마지막 통계 업데이트 이후 데이터 수정 개수를 계산한 다음 이 수를 임계값과 비교하여 통계가 최신이 아니게 된 시점을 결정합니다.The query optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. 임계값은 테이블 또는 인덱싱된 뷰의 행 수를 기준으로 합니다.The threshold is based on the number of rows in the table or indexed view.

쿼리 최적화 프로그램은 쿼리를 컴파일하기 전과 캐시된 쿼리 계획을 실행하기 전에 최신이 아닌 통계가 있는지를 확인합니다.The query optimizer checks for out-of-date statistics before compiling a query and before executing a cached query plan. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 쿼리 조건자의 열, 테이블 및 인덱싱된 뷰를 사용하여 어떤 통계가 최신이 아닌지 결정합니다.Before compiling a query, the query optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. 데이터베이스 엔진Database Engine 에서는 캐시된 쿼리 계획을 실행하기 전에 쿼리 계획에서 최신 통계가 참조되는지 확인합니다.Before executing a cached query plan, the 데이터베이스 엔진Database Engine verifies that the query plan references up-to-date statistics.

AUTO_UPDATE_STATISTICS 옵션은 인덱스에 대해 생성된 통계, 쿼리 조건자의 단일 열 및 CREATE STATISTICS 문을 사용하여 생성된 통계에 적용됩니다.The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. 이 옵션은 또한 필터링된 통계에도 적용됩니다.This option also applies to filtered statistics.

기본값은 ON입니다.The default is ON. 대부분의 데이터베이스의 경우 기본 설정을 사용하는 것이 좋습니다.We recommend that you use the default setting for most databases.

AUTO_UPDATE_STATISTICS_ASYNC 옵션을 사용하여 통계를 동기적으로 업데이트할지 또는 비동기적으로 업데이트할지를 지정합니다.Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
쿼리에서 통계를 사용하거나 통계가 최신이 아닐 때 쿼리 최적화 프로그램에서 통계를 업데이트하지 않도록 지정합니다.Specifies that the query optimizer does not update statistics when they are used by a query and when they might be out-of-date. 이 옵션을 OFF로 설정하면 최적이 아닌 쿼리 계획을 사용하므로 쿼리 성능이 저하됩니다.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_update_stats_on 열 또는 DATABASEPROPERTYEX 함수의 IsAutoUpdateStatistics 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_auto_update_stats_on column in the sys.databases catalog view or the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

자세한 내용은 통계 의 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하세요.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
AUTO_UPDATE_STATISTICS 옵션에 대한 통계 업데이트를 비동기로 지정합니다.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 통계 업데이트가 완료될 때까지 기다리지 않습니다.The query optimizer does not wait for statistics updates to complete before it compiles queries.

이 옵션을 ON으로 설정해도 AUTO_UPDATE_STATISTICS가 ON으로 설정되어 있지 않으면 영향을 주지 않습니다.Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

기본적으로 AUTO_UPDATE_STATISTICS_ASYNC 옵션은 OFF로 설정되므로 쿼리 최적화 프로그램은 통계를 동기적으로 업데이트합니다.By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and the query optimizer updates statistics synchronously.

OFFOFF
AUTO_UPDATE_STATISTICS 옵션에 대한 통계 업데이트를 동기로 지정합니다.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 통계 업데이트가 완료될 때까지 기다립니다.The query optimizer waits for statistcs updates to complete before it compiles queries.

이 옵션을 OFF로 설정해도 AUTO_UPDATE_STATISTICS가 ON으로 설정되어 있지 않으면 영향을 주지 않습니다.Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_auto_update_stats_async_on 열을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

동기 통계 업데이트를 사용하는 경우 또는 비동기 통계 업데이트를 사용하는 경우에 대한 자세한 설명은 통계 에서 "데이터베이스 차원의 통계 옵션 사용" 섹션을 참조하세요.For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the Database-Wide Statistics Options" in Statistics.

<automatic_tuning_option> ::=<automatic_tuning_option> ::=
적용 대상: SQL Server 2017(14.x)SQL Server 2017 (14.x).Applies to: SQL Server 2017(14.x)SQL Server 2017 (14.x).

FORCE_LAST_GOOD_PLAN 자동 튜닝 옵션을 사용하거나 사용하지 않도록 설정합니다.Enables or disables FORCE_LAST_GOOD_PLAN automatic tuning option.

FORCE_LAST_GOOD_PLAN = { ON | OFF }FORCE_LAST_GOOD_PLAN = { ON | OFF }
ONON
데이터베이스 엔진Database Engine은 새 SQL 계획이 성능 저하를 일으키는 Transact-SQL 쿼리에 마지막으로 성공한 계획을 자동으로 강제로 적용합니다.The 데이터베이스 엔진Database Engine automatically forces the last known good plan on the Transact-SQL queries where new SQL plan causes performance regressions. 데이터베이스 엔진Database Engine은 강제 계획을 통해 Transact-SQL 쿼리의 쿼리 성능을 지속적으로 모니터링합니다.The 데이터베이스 엔진Database Engine continously monitors query performance of the Transact-SQL query with the forced plan. 성능이 향상되면 데이터베이스 엔진Database Engine은 마지막으로 성공한 계획을 계속 사용합니다.If there are performance gains, the 데이터베이스 엔진Database Engine will keep using last known good plan. 성능 향상이 검색되지 않으면 데이터베이스 엔진Database Engine이 새 SQL 계획을 생성합니다.If performance gains are not detected, the 데이터베이스 엔진Database Engine will produce a new SQL plan. Query Store를 사용하도록 설정되어 있지 않거나 읽기/쓰기 모드가 아닌 경우 명령문은 실패합니다.The statement will fail if Query Store is not enabled or if it is not in Read-Write mode.
OFFOFF
데이터베이스 엔진Database Enginesys.dm_db_tuning_recommendations 뷰에서 SQL 계획 변경으로 인한 잠재적인 쿼리 성능 저하를 보고합니다.The 데이터베이스 엔진Database Engine reports potential query performance regressions caused by SQL plan changes in sys.dm_db_tuning_recommendations view. 하지만 이러한 권장 사항은 자동으로 적용되지 않습니다.However, these recommendations are not automatically applied. 사용자는 뷰에 표시된 Transact-SQL 스크립트를 적용하여 활성 권장 사항을 모니터링하고 확인된 문제를 해결할 수 있습니다.User can monitor active recomendations and fix identified problems by applying Transact-SQL scripts that are shown in the view. 이것은 기본값입니다.This is the default value.

<change_tracking_option> ::=<change_tracking_option> ::=

적용 대상: SQL ServerSQL ServerSQL DatabaseSQL Database.Applies to: SQL ServerSQL Server and SQL DatabaseSQL Database.

변경 내용 추적 옵션을 제어합니다.Controls change tracking options. 변경 내용 추적을 설정 또는 해제하고 옵션을 설정 또는 변경할 수 있습니다.You can enable change tracking, set options, change options, and disable change tracking. 예를 보려면 이 항목의 뒤 부분에 나오는 예 섹션을 참조하십시오.For examples, see the Examples section later in this topic.

ONON
데이터베이스에 변경 내용 추적을 설정합니다.Enables change tracking for the database. 변경 내용 추적을 설정하면 AUTO CLEANUP 및 CHANGE RETENTION 옵션도 설정할 수 있습니다.When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
지정된 보존 기간 후에 변경 내용 추적 정보가 자동으로 제거됩니다.Change tracking information is automatically removed after the specified retention period.

OFFOFF
변경 내용 추적 데이터가 데이터베이스에서 제거되지 않습니다.Change tracking data is not removed from the database.

CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }
데이터베이스에 변경 내용 추적 정보를 보존하는 최소 기간을 지정합니다.Specifies the minimum period for keeping change tracking information in the database. 데이터는 AUTO_CLEANUP 값이 ON일 때만 제거됩니다.Data is removed only when the AUTO_CLEANUP value is ON.

retention_period는 보존 기간의 숫자 부분을 지정하는 정수입니다.retention_period is an integer that specifies the numerical component of the retention period.

기본 보존 기간은 2일입니다.The default retention period is 2 days. 최소 보존 기간은 1분입니다.The minimum retention period is 1 minute. 기본 보존 형식은 일입니다.The default retention type is DAYS.

OFFOFF
데이터베이스에서 변경 내용 추적을 해제합니다.Disables change tracking for the database. 데이터베이스에서 변경 내용 추적을 해제하려면 모든 테이블에서 변경 내용 추적을 해제해야 합니다.You must disable change tracking on all tables before you can disable change tracking off the database.

<containment_option> ::=<containment_option> ::=

적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

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

CONTAINMENT = { NONE | PARTIAL}CONTAINMENT = { NONE | PARTIAL}
없음NONE
데이터베이스가 포함된 데이터베이스가 아닙니다.The database is not a contained database.

PARTIALPARTIAL
데이터베이스가 포함된 데이터베이스입니다.The database is a contained database. 데이터베이스에 복제, 변경 데이터 캡처 또는 변경 내용 추적을 사용하도록 설정되어 있는 경우 데이터베이스를 부분적으로 포함된 데이터베이스로 설정하면 실패합니다.Setting database containment to partial will fail if the database has replication, change data capture, or change tracking enabled. 실패 후에는 오류 검사가 중지됩니다.Error checking stops after one failure. 포함된 데이터베이스에 대한 자세한 내용은 Contained Databases를 참조하십시오.For more information about contained databases, see Contained Databases.

<cursor_option> ::=<cursor_option> ::=

커서 옵션을 제어합니다.Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
트랜잭션이 커밋되거나 롤백될 때 열린 모든 커서가 닫힙니다.Any cursors open when a transaction is committed or rolled back are closed.

OFFOFF
트랜잭션 커밋 시에는 커서가 그대로 열려 있으나 트랜잭션 롤백 시에는 INSENSITIVE 또는 STATIC으로 정의된 것을 제외한 모든 커서가 닫힙니다.Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

SET 문을 사용하여 설정한 연결 수준 설정은 CURSOR_CLOSE_ON_COMMIT의 기본 데이터베이스 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 CURSOR_CLOSE_ON_COMMIT을 OFF로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC, and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET CURSOR_CLOSE_ON_COMMIT을 참조하세요.For more information, see SET CURSOR_CLOSE_ON_COMMIT.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_cursor_close_on_commit_on 열 또는 DATABASEPROPERTYEX 함수의 IsCloseCursorsOnCommitEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function.

CURSOR_DEFAULT { LOCAL | GLOBAL }CURSOR_DEFAULT { LOCAL | GLOBAL }
적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

커서 범위가 LOCAL인지 GLOBAL인지 여부를 제어합니다.Controls whether cursor scope uses LOCAL or GLOBAL.

LOCALLOCAL
LOCAL을 지정하고 커서를 만들 때 GLOBAL로 정의하지 않은 경우 커서의 범위는 커서가 생성된 일괄 처리, 저장 프로시저 또는 트리거에 로컬로 적용됩니다.When LOCAL is specified and a cursor is not defined as GLOBAL when created, the scope of the cursor is local to the batch, stored procedure, or trigger in which the cursor was created. 커서 이름은 그 범위 내에서만 유효합니다.The cursor name is valid only within this scope. 일괄 처리, 저장 프로시저, 트리거의 로컬 커서 변수 또는 저장 프로시저의 OUTPUT 매개 변수에서 커서를 참조할 수 있습니다.The cursor can be referenced by local cursor variables in the batch, stored procedure, or trigger, or a stored procedure OUTPUT parameter. 커서는 OUTPUT 매개 변수에서 다시 전달되지 않는 한 일괄 처리, 저장 프로시저 또는 트리거가 종료될 때 암시적으로 할당이 취소됩니다.The cursor is implicitly deallocated when the batch, stored procedure, or trigger ends, unless it was passed back in an OUTPUT parameter. OUTPUT 매개 변수에서 커서가 다시 전달되면 커서를 참조하는 마지막 변수의 할당이 취소되거나 범위를 벗어날 때 커서의 할당이 취소됩니다.If the cursor is passed back in an OUTPUT parameter, the cursor is deallocated when the last variable that references it is deallocated or goes out of scope.

GLOBALGLOBAL
GLOBAL을 지정하고 커서를 만들 때 LOCAL로 정의하지 않은 경우 커서의 범위는 연결에 대해 전역으로 적용됩니다.When GLOBAL is specified, and a cursor is not defined as LOCAL when created, the scope of the cursor is global to the connection. 연결되어 실행하는 모든 저장 프로시저 또는 일괄 처리에서 커서 이름을 참조할 수 있습니다.The cursor name can be referenced in any stored procedure or batch executed by the connection.

커서는 연결이 끊어질 때만 암시적으로 할당이 취소됩니다.The cursor is implicitly deallocated only at disconnect. 자세한 내용은 DECLARE CURSOR를 참조하세요.For more information, see DECLARE CURSOR.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_local_cursor_default 열 또는 DATABASEPROPERTYEX 함수의 IsLocalCursorsDefault 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_local_cursor_default column in the sys.databases catalog view or the IsLocalCursorsDefault property of the DATABASEPROPERTYEX function.

<database_mirroring><database_mirroring>

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

인수에 대한 설명은 ALTER DATABASE 데이터베이스 미러링을 참조하세요.For the argument descriptions, see ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::=<date_correlation_optimization_option> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

date_correlation_optimization 옵션을 제어합니다.Controls the date_correlation_optimization option.

DATE_CORRELATION_OPTIMIZATION { ON | OFF }DATE_CORRELATION_OPTIMIZATION { ON | OFF }
ONON
SQL ServerSQL Server는 FOREIGN KEY 제약 조건으로 연결되고 datetime 열이 있는 데이터베이스의 두 테이블 간에 상관 관계 통계를 유지 관리합니다. maintains correlation statistics between any two tables in the database that are linked by a FOREIGN KEY constraint and have datetime columns.

OFFOFF
상관 관계 통계를 유지하지 않습니다.Correlation statistics are not maintained.

DATE_CORRELATION_OPTIMIZATION을 ON으로 설정하려면 ALTER DATABASE 문을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 연결이 없어야 합니다.To set DATE_CORRELATION_OPTIMIZATION to ON, there must be no active connections to the database except for the connection that is executing the ALTER DATABASE statement. 그런 후에는 여러 개의 연결이 지원됩니다.Afterwards, multiple connections are supported.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_date_correlation_on 열을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the is_date_correlation_on column in the sys.databases catalog view.

<db_encryption_option> ::=<db_encryption_option> ::=

데이터베이스 암호화 상태를 제어합니다.Controls the database encryption state.

ENCRYPTION {ON | OFF}ENCRYPTION {ON | OFF}
데이터베이스를 암호화하거나(ON) 암호화하지 않도록(OFF) 설정합니다.Sets the database to be encrypted (ON) or not encrypted (OFF). 데이터베이스 암호화에 대한 자세한 내용은 투명한 데이터 암호화Azure SQL Database를 사용한 투명한 데이터 암호화를 참조하세요.For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

데이터베이스 수준에서 암호화가 설정되면 모든 파일 그룹이 암호화됩니다.When encryption is enabled at the database level all filegroups will be encrypted. 새로운 파일 그룹은 암호화된 속성을 상속합니다.Any new filegroups will inherit the encrypted property. 데이터베이스의 파일 그룹이 READ ONLY로 설정되면 데이터베이스 암호화 작업이 실패합니다.If any filegroups in the database are set to READ ONLY, the database encryption operation will fail.

sys.dm_database_encryption_keys 동적 관리 뷰를 사용하면 데이터베이스의 암호화 상태를 확인할 수 있습니다.You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_state_option> ::=<db_state_option> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

데이터베이스의 상태를 제어합니다.Controls the state of the database.

OFFLINEOFFLINE
데이터베이스가 닫히고 완전히 종료되어 오프라인 상태로 표시됩니다.The database is closed, shut down cleanly, and marked offline. 데이터베이스가 오프라인 상태인 동안에는 데이터베이스를 수정할 수 없습니다.The database cannot be modified while it is offline.

ONLINEONLINE
데이터베이스가 열려 사용할 수 있게 됩니다.The database is open and available for use.

EMERGENCYEMERGENCY
데이터베이스가 READ_ONLY로 표시되고 로깅이 비활성화되며 sysadmin 고정 서버 역할의 멤버로 액세스가 제한됩니다.The database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role. EMERGENCY는 주로 문제 해결을 위해 사용됩니다.EMERGENCY is primarily used for troubleshooting purposes. 예를 들어 손상된 로그 파일로 인해 주의 대상으로 표시된 데이터베이스를 EMERGENCY 상태로 설정할 수 있습니다.For example, a database marked as suspect due to a corrupted log file can be set to the EMERGENCY state. 이 경우 시스템 관리자는 읽기 전용으로 데이터베이스에 액세스할 수 있습니다.This could enable the system administrator read-only access to the database. sysadmin 고정 서버 역할의 멤버만 데이터베이스를 EMERGENCY 상태로 설정할 수 있습니다.Only members of the sysadmin fixed server role can set a database to the EMERGENCY state.

참고

사용 권한: 데이터베이스를 오프라인 또는 응급 상태로 변경하려면 주제 데이터베이스에 대한 ALTER DATABASE 권한이 필요합니다.Permissions: ALTER DATABASE permission for the subject database is required to change a database to the offline or emergency state. 데이터베이스를 오프라인 상태에서 온라인 상태로 전환하려면 서버 수준 ALTER ANY DATABASE 권한이 필요합니다.The server level ALTER ANY DATABASE permission is required to move a database from offline to online.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 state 열과 state_desc 열 또는 DATABASEPROPERTYEX 함수의 Status 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the state and state_desc columns in the sys.databases catalog view or the Status property of the DATABASEPROPERTYEX function. 자세한 내용은 Database States을 참조하세요.For more information, see Database States.

RESTORING으로 표시된 데이터베이스는 OFFLINE, ONLINE 또는 EMERGENCY로 설정할 수 없습니다.A database marked as RESTORING cannot be set to OFFLINE, ONLINE, or EMERGENCY. 활성 복원 작업 중이나 데이터베이스 또는 로그 파일의 복원 작업이 손상된 백업 파일로 인해 실패할 경우 데이터베이스가 RESTORING 상태일 수 있습니다.A database may be in the RESTORING state during an active restore operation or when a restore operation of a database or log file fails because of a corrupted backup file.

<db_update_option> ::=<db_update_option> ::=

데이터베이스에 대한 업데이트 허용 여부를 제어합니다.Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
사용자는 데이터베이스에서 데이터를 읽을 수 있지만 수정은 할 수 없습니다.Users can read data from the database but not modify it.

참고

쿼리 성능을 향상시키려면 데이터베이스를 READ_ONLY로 설정하기 전에 통계를 업데이트하십시오.To improve query performance, update statistics before setting a database to READ_ONLY. 데이터베이스를 READ_ONLY로 설정한 후에 추가 통계가 필요한 경우 데이터베이스 엔진Database Engine에서 tempdb에 통계를 만듭니다.If additional statistics are needed after a database is set to READ_ONLY, the 데이터베이스 엔진Database Engine will create statistics in tempdb. 읽기 전용 데이터베이스의 통계에 대한 자세한 내용은 통계를 참조하세요.For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
데이터베이스에서 읽기와 쓰기 작업을 할 수 있습니다.The database is available for read and write operations.

이 상태를 변경하려면 데이터베이스에 대해 배타적 액세스 권한이 있어야 합니다.To change this state, you must have exclusive access to the database. 자세한 내용은 SINGLE_USER 절을 참조하십시오.For more information, see the SINGLE_USER clause.

참고

SQL DatabaseSQL Database 연결된 데이터베이스에서 SET { READ_ONLY | READ_WRITE }는 해제됩니다.On SQL DatabaseSQL Database federated databases, SET { READ_ONLY | READ_WRITE } is disabled.

<db_user_access_option> ::=<db_user_access_option> ::=

데이터베이스에 대한 사용자 액세스를 제어합니다.Controls user access to the database.

SINGLE_USERSINGLE_USER
적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

한 번에 한 사용자만 데이터베이스에 액세스할 수 있도록 지정합니다.Specifies that only one user at a time can access the database. SINGLE_USER가 지정된 상태에서 다른 사용자들이 데이터베이스에 연결되어 있는 경우 모든 사용자가 지정된 데이터베이스와의 연결을 끊을 때까지 ALTER DATABASE 문이 차단됩니다.If SINGLE_USER is specified and there are other users connected to the database, the ALTER DATABASE statement will be blocked until all users disconnect from the specified database. 이 동작을 무시하려면 WITH <termination> 절을 참조하세요.To override this behavior, see the WITH <termination> clause.

옵션을 설정한 사용자가 로그오프해도 데이터베이스는 SINGLE_USER 모드로 유지됩니다.The database remains in SINGLE_USER mode even if the user that set the option logs off. 이때 다른 한 명의 사용자만 데이터베이스에 연결할 수 있습니다.At that point, a different user, but only one, can connect to the database.

데이터베이스를 SINGLE_USER로 설정하기 전에 AUTO_UPDATE_STATISTICS_ASYNC 옵션이 OFF로 설정되어 있는지 확인합니다.Before you set the database to SINGLE_USER, verify the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. 이 옵션이 ON으로 설정되면 통계 업데이트에 사용되는 백그라운드 스레드가 데이터베이스에 대한 연결을 점유하므로 사용자는 단일 사용자 모드로 데이터베이스에 액세스할 수 없습니다.When set to ON, the background thread used to update statistics takes a connection against the database, and you will be unable to access the database in single-user mode. 이 옵션의 상태를 보려면 sys.databases 카탈로그 뷰의 is_auto_update_stats_async_on 열을 쿼리합니다.To view the status of this option, query the is_auto_update_stats_async_on column in the sys.databases catalog view. 옵션이 ON으로 설정되어 있으면 다음 태스크를 수행합니다.If the option is set to ON, perform the following tasks:

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

  2. sys.dm_exec_background_job_queue 동적 관리 뷰를 쿼리하여 활성 비동기 통계 작업을 검사합니다.Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.

활성 작업이 있을 경우 KILL STATS JOB을 사용하여 해당 작업을 완료하도록 허용하거나 수동으로 종료합니다.If there are active jobs, either allow the jobs to complete or manually terminate them by using KILL STATS JOB.

RESTRICTED_USERRESTRICTED_USER
RESTRICTED_USER는 db_owner 고정 데이터베이스 역할 및 dbcreator와 sysadmin 고정 서버 역할의 멤버만 데이터베이스로의 연결을 허용하지만 연결되는 수는 제한하지 않습니다.RESTRICTED_USER allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but does not limit their number. 데이터베이스에 대한 모든 연결은 ALTER DATABASE 문의 termination 절에 지정된 시간대에 끊어집니다.All connections to the database are disconnected in the timeframe specified by the termination clause of the ALTER DATABASE statement. 데이터베이스가 RESTRICTED_USER 상태로 바뀐 후 자격이 없는 사용자의 연결 시도는 거부됩니다.After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused.

MULTI_USERMULTI_USER
데이터베이스에 연결할 수 있는 적절한 권한이 있는 모든 사용자의 연결을 허용합니다.All users that have the appropriate permissions to connect to the database are allowed.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 user_access 열 또는 DATABASEPROPERTYEX 함수의 UserAccess 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the user_access column in the sys.databases catalog view or the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::=<delayed_durability_option> ::=

적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

트랜잭션이 완전한 내구성이 있게 커밋될지 아니면 지연된 내구성이 있게 커밋될지 제어합니다.Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
SET DISABLED 다음의 모든 트랜잭션은 완전한 내구성이 있습니다.All transactions following SET DISABLED are fully durable. ATOMIC 블록이나 COMMIT 문에 설정된 내구성 옵션은 무시됩니다.Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
SET ALLOWED 다음의 모든 트랜잭션은 ATOMIC 블록이나 COMMIT 문에 설정된 내구성 옵션에 따라 완전한 내구성이 있거나 지연된 내구성이 있습니다.All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
SET FORCED 다음의 모든 트랜잭션은 지연된 내구성이 있습니다.All transactions following SET FORCED are delayed durable. ATOMIC 블록이나 COMMIT 문에 설정된 내구성 옵션은 무시됩니다.Any durability options set in an atomic block or commit statement are ignored.

<external_access_option> ::=<external_access_option> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

다른 데이터베이스의 개체와 같은 외부 리소스에서 데이터베이스에 액세스할 수 있는지 여부를 제어합니다.Controls whether the database can be accessed by external resources, such as objects from another database.

DB_CHAINING { ON | OFF }DB_CHAINING { ON | OFF }
ONON
데이터베이스가 데이터베이스 간 소유권 체인의 원본이나 대상이 될 수 있습니다.Database can be the source or target of a cross-database ownership chain.

OFFOFF
데이터베이스가 데이터베이스 간 소유권 체인에 참여할 수 없습니다.Database cannot participate in cross-database ownership chaining.

중요

SQL ServerSQL Server 인스턴스는 cross db ownership chaining 서버 옵션이 0(OFF)일 때 이 설정을 인식할 수 있습니다.The instance of SQL ServerSQL Server will recognize this setting when the cross db ownership chaining server option is 0 (OFF). cross db ownership chaining이 1(ON)이면 모든 사용자 데이터베이스는 이 옵션 값에 관계없이 데이터베이스 간 소유권 체인에 참여할 수 있습니다.When cross db ownership chaining is 1 (ON), all user databases can participate in cross-database ownership chains, regardless of the value of this option. 이 옵션은 sp_configure를 사용하여 설정합니다.This option is set by using sp_configure.

이 옵션을 설정하려면 데이터베이스에 대한 CONTROL SERVER 권한이 필요합니다.To set this option, requires CONTROL SERVER permission on the database.

DB_CHAINING 옵션은 master, model 및 tempdb 시스템 데이터베이스에서는 설정할 수 없습니다.The DB_CHAINING option cannot be set on these system databases: master, model, and tempdb.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_db_chaining_on 열을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_db_chaining_on column in the sys.databases catalog view.

TRUSTWORTHY { ON | OFF }TRUSTWORTHY { ON | OFF }
ONON
가장 컨텍스트를 사용하는 데이터베이스 모듈(예: 사용자 정의 함수 또는 저장 프로시저)이 데이터베이스 외부의 리소스에 액세스할 수 있습니다.Database modules (for example, user-defined functions or stored procedures) that use an impersonation context can access resources outside the database.

OFFOFF
가장 컨텍스트의 데이터베이스 모듈이 데이터베이스 외부 리소스에 액세스할 수 없습니다.Database modules in an impersonation context cannot access resources outside the database.

TRUSTWORTHY는 데이터베이스가 연결될 때마다 OFF로 설정됩니다.TRUSTWORTHY is set to OFF whenever the database is attached.

기본적으로 msdb 데이터베이스를 제외한 모든 시스템 데이터베이스는 TRUSTWORTHY가 OFF로 설정되어 있습니다.By default, all system databases except the msdb database have TRUSTWORTHY set to OFF. model 및 tempdb 데이터베이스에 대해서는 이 값을 변경할 수 없습니다.The value cannot be changed for the model and tempdb databases. master 데이터베이스의 경우 TRUSTWORTHY 옵션을 ON으로 설정하지 않는 것이 좋습니다.We recommend that you never set the TRUSTWORTHY option to ON for the master database.

이 옵션을 설정하려면 데이터베이스에 대한 CONTROL SERVER 권한이 필요합니다.To set this option, requires CONTROL SERVER permission on the database.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_trustworthy_on 열을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_trustworthy_on column in the sys.databases catalog view.

DEFAULT_FULLTEXT_LANGUAGEDEFAULT_FULLTEXT_LANGUAGE
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

전체 텍스트 인덱싱된 열에 대한 기본 언어 값을 지정합니다.Specifies the default language value for full-text indexed columns.

중요

이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다.This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.If CONTAINMENT is set to NONE, errors will occur.

DEFAULT_LANGUAGEDEFAULT_LANGUAGE
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

새로 생성된 모든 로그인에 대한 기본 언어를 지정합니다.Specifies the default language for all newly created logins. LCID(로컬 ID), 언어 이름 또는 언어 별칭을 제공하여 언어를 지정할 수 있습니다.Language can be specified by providing the local ID (lcid), the language name, or the language alias. 사용 가능한 언어 이름 및 별칭 목록은 sys.syslanguages를 참조하세요.For a list of acceptable language names and aliases, see sys.syslanguages. 이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다.This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.If CONTAINMENT is set to NONE, errors will occur.

NESTED_TRIGGERSNESTED_TRIGGERS
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

AFTER 트리거의 중첩(한 트리거가 다른 트리거를 시작하는 과정이 반복되는 동작) 여부를 지정합니다.Specifies whether an AFTER trigger can cascade; that is, perform an action that initiates another trigger, which initiates another trigger, and so on. 이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다.This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.If CONTAINMENT is set to NONE, errors will occur.

TRANSFORM_NOISE_WORDSTRANSFORM_NOISE_WORDS
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

의미 없는 단어 또는 중지 단어로 인해 전체 텍스트 쿼리에 대한 부울 연산이 실패할 경우 오류 메시지를 표시하지 않는 데 사용됩니다.Used to suppress an error message if noise words, or stopwords, cause a Boolean operation on a full-text query to fail. 이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다.This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.If CONTAINMENT is set to NONE, errors will occur.

TWO_DIGIT_YEAR_CUTOFFTWO_DIGIT_YEAR_CUTOFF
적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

두 자리 연도를 네 자리 연도로 해석하기 위한 구분 연도를 나타내는 1753에서 9999까지의 정수를 지정합니다.Specifies an integer from 1753 to 9999 that represents the cutoff year for interpreting two-digit years as four-digit years. 이 옵션은 CONTAINMENT가 PARTIAL로 설정된 경우에만 사용할 수 있습니다.This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT가 NONE으로 설정되어 있으면 오류가 발생합니다.If CONTAINMENT is set to NONE, errors will occur.

<FILESTREAM_option> ::=<FILESTREAM_option> ::=

적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

FileTable에 대한 설정을 제어합니다.Controls the settings for FileTables.

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
OFFOFF
FileTable 데이터에 대한 비트랜잭션 액세스를 사용하지 않도록 설정합니다.Non-transactional access to FileTable data is disabled.

READ_ONLYREAD_ONLY
비트랜잭션 프로세스에서 이 데이터베이스의 FileTable에 있는 FILESTREAM 데이터를 읽을 수 있습니다.FILESTREAM data in FileTables in this database can be read by non-transactional processes.

FULLFULL
FileTabl의 FILESTREAM 데이터에 대한 전체 비트랜잭션 액세스를 사용할 수 있습니다.Full non-transactional access to FILESTREAM data in FileTables is enabled.

DIRECTORY_NAME = <directory_name>DIRECTORY_NAME = <directory_name>
Windows 호환 디렉터리 이름입니다.A windows-compatible directory name. 이 이름은 SQL ServerSQL Server 인스턴스의 모든 데이터베이스 수준 디렉터리 이름 중에서 고유해야 합니다.This name should be unique among all the database-level directory names in the SQL ServerSQL Server instance. 고유성을 비교할 때는 데이터 정렬 설정과 관계없이 대/소문자가 구분되지 않습니다.Uniqueness comparison is case-insensitive, regardless of collation settings. 데이터베이스에 FileTable을 만들기 전에 이 옵션을 설정해야 합니다.This option must be set before creating a FileTable in this database.

<HADR_options> ::=<HADR_options> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

ALTER DATABASE SET HADR을 참조하세요.See ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::=<mixed_page_allocation_option> ::=

적용 대상: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) ~ 현재 버전).Applies to: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) through current version).

MIXED_PAGE_ALLOCATION { OFF | ON }은 데이터베이스가 테이블이나 인덱스의 첫 8페이지에 대해 혼합 익스텐트를 사용하여 초기 페이지를 만들 수 있을지 여부를 제어합니다.MIXED_PAGE_ALLOCATION { OFF | ON } controls whether the database can create initial pages using a mixed extent for the first eight pages of a table or index.

OFFOFF
데이터베이스는 항상 단일 익스텐트를 사용하여 초기 페이지를 만듭니다.The database always creates initial pages using uniform extents. 이것은 기본값입니다.This is the default value.

ONON
데이터베이스는 혼합 익스텐트를 사용하여 초기 페이지를 만들 수 있습니다.The database can create initial pages using mixed extents.

이 설정은 모든 시스템 데이터베이스에 대해 ON입니다.This setting is ON for all system databases. tempdb는 OFF를 지원하는 유일한 시스템 데이터베이스입니다.tempdb is the only system database that supports OFF.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

매개 변수화 옵션을 제어합니다.Controls the parameterization option.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
데이터베이스의 기본 동작에 따라 쿼리를 매개 변수화합니다.Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
SQL ServerSQL Server에서 데이터베이스의 모든 쿼리를 매개 변수화합니다. parameterizes all queries in the database.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_parameterization_forced 열을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::=<query_store_options> ::=

적용 대상: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) ~ SQL Server 2017SQL Server 2017).Applies to: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017).

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
이 데이터베이스에서 쿼리 저장소를 사용 여부를 제어하고 쿼리 저장소의 내용 제거를 제어합니다.Controls if the query store is enabled in this database, and also controls removing the contents of the query store.

ONON
쿼리 저장소를 사용하도록 설정합니다.Enables the query store.

OFFOFF
쿼리 저장소를 사용하지 않도록 합니다.Disables the query store. 이것은 기본값입니다.This is the default value.

CLEARCLEAR
쿼리 저장소의 내용을 제거합니다.Remove the contents of the query store.

OPERATION_MODEOPERATION_MODE
쿼리 저장소의 작업 모드를 설명합니다.Describes the operation mode of the query store. 유효한 값은 READ_ONLY 및 READ_WRITE입니다.Valid values are READ_ONLY and READ_WRITE. READ_WRITE 모드에서 쿼리 저장소는 쿼리 계획 및 런타임 실행 통계 정보를 수집하고 유지합니다.In READ_WRITE mode, the query store collects and persists query plan and runtime execution statistics information. READ_ONLY 모드에서는 쿼리 저장소에서 정보를 읽을 수 있지만 새 정보는 추가되지 않습니다.In READ_ONLY mode, information can be read from the query store, but new information is not added. 쿼리 저장소의 최대 할당 공간이 최대값에 도달하면 쿼리 저장소는 작업 모드를 READ_ONLY로 변경합니다.If the maximum allocated space of the query store has been exhausted, the query store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
쿼리 저장소의 데이터 보존 정책을 설명합니다.Describes the data retention policy of the query store. STALE_QUERY_THRESHOLD_DAYS는 쿼리에 대한 정보가 쿼리 저장소에 보존되는 일 수를 결정합니다.STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is retained in the query store. STALE_QUERY_THRESHOLD_DAYS는 bigint 형식입니다.STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
쿼리 저장소에 기록된 데이터가 디스크에 유지되는 빈도를 결정합니다.Determines the frequency at which data written to the query store is persisted to disk. 성능 최적화를 위해 쿼리 저장소에서 수집한 데이터는 디스크에 비동기적으로 기록됩니다.To optimize for performance, data collected by the query store is asynchronously written to the disk. 비동기 전송이 발생하는 빈도는 DATA_FLUSH_INTERVAL_SECONDS 인수를 사용하여 구성됩니다.The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS는 bigint 형식입니다.DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
쿼리 저장소에 할당되는 공간을 결정합니다.Determines the space allocated to the query store. MAX_STORAGE_SIZE_MB는 bigint 형식입니다.MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
런타임 실행 통계 데이터가 쿼리 저장소로 집계되는 간격을 결정합니다.Determines the time interval at which runtime execution statistics data is aggregated into the query store. 공간 사용을 최적화하기 위해 런타임 통계 저장소의 런타임 실행 통계는 고정된 시간 창을 통해 집계됩니다.To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. 고정된 시간 창은 INTERVAL_LENGTH_MINUTES 인수를 사용하여 구성됩니다.This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES는 bigint 형식입니다.INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODESIZE_BASED_CLEANUP_MODE
총 데이터 양이 최대 크기에 가까워지면 정리가 자동으로 활성화될지 여부를 제어합니다.Controls whether cleanup will be automatically activated when total amount of data gets close to maximum size:

OFFOFF
크기 기반 정리는 자동으로 활성화되지 않습니다.Size based cleanup won’t be automatically activated.

AUTOAUTO
크기 기반 정리는 디스크의 크기가 max_storage_size_mb의 90%에 도달하면 자동으로 활성화됩니다.Size based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. 크기 기반 정리는 가장 저렴하고 가장 오래된 쿼리를 먼저 제거합니다.Size based cleanup removes the least expensive and oldest queries first. max_storage_size_mb가 약 80%가 되면 멈춥니다.It stops at approximately 80% of max_storage_size_mb. 이것은 기본 구성 값입니다.This is the default configuration value.

SIZE_BASED_CLEANUP_MODE는 nvarchar 형식입니다.SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODEQUERY_CAPTURE_MODE
현재 활성 쿼리 캡처 모드를 지정합니다.Designates the currently active query capture mode:

ALL 모든 쿼리가 캡처됩니다.ALL All queries are captured. 이것은 기본 구성 값입니다.This is the default configuration value. 이것이 SQL Server 2016(13.x)SQL Server 2016 (13.x)에 대한 기본 구성 값입니다.This is the default configuration value for SQL Server 2016(13.x)SQL Server 2016 (13.x)

AUTO 실행 수 및 리소스 소비를 기반으로 관련 쿼리를 캡처합니다.AUTO Capture relevant queries based on execution count and resource consumption.

NONE 새 쿼리 캡처를 중지합니다.NONE Stop capturing new queries. Query Store는 이미 캡처된 쿼리에 대한 컴파일 및 런타임 통계를 계속 수집합니다.Query Store will continue to collect compile and runtime statistics for queries that were captured already. 중요한 쿼리 캡처를 놓칠 수 있으므로 이 구성은 주의해서 사용해야 합니다.Use this configuration with caution since you may miss to capture important queries.

QUERY_CAPTURE_MODE는 nvarchar 형식입니다.QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
각 쿼리에 대하여 유지되는 계획의 수를 나타내는 정수입니다.An integer representing the maximum number of plans maintained for each query. 기본값은 200입니다.Default is 200.

<recovery_option> ::=<recovery_option> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

데이터베이스 복구 옵션과 디스크 I/O 오류 검사를 제어합니다.Controls database recovery options and disk I/O error checking.

FULLFULL
미디어 오류가 발생한 후에는 트랜잭션 로그 백업을 사용하여 전체 복구를 제공합니다.Provides full recovery after media failure by using transaction log backups. 데이터 파일이 손상된 경우 미디어 복구 기능을 통해 모든 커밋된 트랜잭션을 복원할 수 있습니다.If a data file is damaged, media recovery can restore all committed transactions. 자세한 내용은 복구 모델을 참조하세요.For more information, see Recovery Models.

BULK_LOGGEDBULK_LOGGED
미디어 오류가 발생한 후에 일부 대량 작업에 대해 성능은 좋고 로그 공간 사용량은 적은 방법으로 복구를 제공합니다.Provides recovery after media failure by combining the best performance and least amount of log-space use for certain large-scale or bulk operations. 최소 로깅이 가능한 작업에 대한 자세한 내용은 트랜잭션 로그를 참조하세요.For information about what operations can be minimally logged, see The Transaction Log. BULK_LOGGED 복구 모델에서는 이러한 작업에 대해서 최소 로깅이 사용됩니다.Under the BULK_LOGGED recovery model, logging for these operations is minimal. 자세한 내용은 복구 모델을 참조하세요.For more information, see Recovery Models.

SIMPLESIMPLE
최소 로그 공간을 사용하는 단순 백업 전략을 제공합니다.A simple backup strategy that uses minimal log space is provided. 서버 오류 복구에 더 이상 필요 없는 로그 공간은 자동으로 재사용됩니다.Log space can be automatically reused when it is no longer required for server failure recovery. 자세한 내용은 복구 모델을 참조하세요.For more information, see Recovery Models.

중요

단순 복구 모델은 다른 두 모델보다 관리하기는 쉽지만 데이터 파일이 손상된 경우 데이터 손실 위험은 더 큽니다.The simple recovery model is easier to manage than the other two models but at the expense of greater data loss exposure if a data file is damaged. 최신 데이터베이스 또는 차등 데이터베이스 백업이 손실된 이후의 변경 사항은 모두 수동으로 다시 입력해야 합니다.All changes since the most recent database or differential database backup are lost and must be manually reentered.

기본 복구 모델은 model 데이터베이스의 복구 모델에 의해 결정됩니다.The default recovery model is determined by the recovery model of the model database. 적절한 복구 모델을 선택하는 방법에 대한 자세한 내용은 복구 모델을 참조하세요.For more information about selecting the appropriate recovery model, see Recovery Models.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 recovery_modelrecovery_model_desc 열 또는 DATABASEPROPERTYEX 함수의 Recovery 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the recovery_model and recovery_model_desc columns in the sys.databases catalog view or the Recovery property of the DATABASEPROPERTYEX function.

TORN_PAGE_DETECTION { ON | OFF }TORN_PAGE_DETECTION { ON | OFF }
ONON
데이터베이스 엔진Database Engine에서 완료되지 않은 페이지를 검색할 수 있습니다.Incomplete pages can be detected by the 데이터베이스 엔진Database Engine.

OFFOFF
데이터베이스 엔진Database Engine에서 완료되지 않은 페이지를 검색할 수 없습니다.Incomplete pages cannot be detected by the 데이터베이스 엔진Database Engine.

중요

TORN_PAGE_DETECTION ON | OFF 구문 구조는 이후 버전의 SQL ServerSQL Server에서는 제거될 예정입니다.The syntax structure TORN_PAGE_DETECTION ON | OFF will be removed in a future version of SQL ServerSQL Server. 새 개발 작업에서는 이 구문 구조를 사용하지 않도록 하고 현재 이 구문 구조를 사용하는 응용 프로그램은 수정하십시오.Avoid using this syntax structure in new development work, and plan to modify applications that currently use the syntax structure. 대신 PAGE_VERIFY 옵션을 사용하십시오.Use the PAGE_VERIFY option instead.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
디스크 I/O 경로 오류로 인해 손상된 데이터베이스 페이지를 찾습니다.Discovers damaged database pages caused by disk I/O path errors. 디스크 I/O 경로 오류는 일반적으로 페이지를 디스크에 쓸 때 전원 오류나 디스크 하드웨어 오류로 인해 발생하며 데이터베이스 손상 문제를 일으킬 수 있습니다.Disk I/O path errors can be the cause of database corruption problems and are generally caused by power failures or disk hardware failures that occur at the time the page is being written to disk.

CHECKSUMCHECKSUM
페이지를 디스크에 쓸 때 전체 페이지의 내용에 대한 체크섬을 계산하고 이 값을 페이지 헤더에 저장합니다.Calculates a checksum over the contents of the whole page and stores the value in the page header when a page is written to disk. 디스크에서 페이지를 읽으면 체크섬이 다시 계산되어 페이지 헤더에 저장된 체크섬 값과 비교됩니다.When the page is read from disk, the checksum is recomputed and compared to the checksum value stored in the page header. 두 값이 일치하지 않으면 체크섬 오류를 나타내는 824 오류 메시지가 SQL ServerSQL Server 오류 로그와 Windows 이벤트 로그에 보고됩니다.If the values do not match, error message 824 (indicating a checksum failure) is reported to both the SQL ServerSQL Server error log and the Windows event log. 체크섬 오류는 I/O 경로 문제를 나타냅니다.A checksum failure indicates an I/O path problem. 오류에 대한 근본 원인을 확인하려면 하드웨어, 펌웨어 드라이버, BIOS, 필터 드라이버(예: 바이러스 소프트웨어) 및 기타 I/O 경로 구성 요소를 조사해야 합니다.To determine the root cause requires investigation of the hardware, firmware drivers, BIOS, filter drivers (such as virus software), and other I/O path components.

TORN_PAGE_DETECTIONTORN_PAGE_DETECTION
페이지를 디스크에 쓸 때 8KB 데이터베이스 페이지의 각 512바이트 섹터에 대해 특정 2비트 패턴을 데이터베이스 페이지 헤더에 저장합니다.Saves a specific 2-bit pattern for each 512-byte sector in the 8-kilobyte (KB) database page and stored in the database page header when the page is written to disk. 디스크에서 페이지를 읽으면 페이지 헤더에 저장된 조각난 비트가 실제 페이지 섹터 정보와 비교됩니다.When the page is read from disk, the torn bits stored in the page header are compared to the actual page sector information. 값이 일치하지 않으면 페이지의 일부분만 디스크에 쓰여졌음을 의미합니다.Unmatched values indicate that only part of the page was written to disk. 이 경우 조각난 페이지 오류를 나타내는 824 오류 메시지가 SQL ServerSQL Server 오류 로그와 Windows 이벤트 로그에 보고됩니다.In this situation, error message 824 (indicating a torn page error) is reported to both the SQL ServerSQL Server error log and the Windows event log. 조각난 페이지가 실제로 쓰기가 완료되지 않은 페이지인 경우 조각난 페이지는 보통 데이터베이스 복구에서 검색됩니다.Torn pages are typically detected by database recovery if it is truly an incomplete write of a page. 그러나 다른 I/O 경로 오류도 언제든 조각난 페이지의 원인이 될 수 있습니다.However, other I/O path failures can cause a torn page at any time.

없음NONE
데이터베이스 페이지 쓰기에서 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 생성되지 않습니다.Database page writes will not generate a CHECKSUM or TORN_PAGE_DETECTION value. SQL ServerSQL Server는 페이지 헤더에 CHECKSUM 또는 TORN_PAGE_DETECTION 값이 있는 경우에도 읽기 중 체크섬이나 조각난 페이지를 확인하지 않습니다. will not verify a checksum or torn page during a read even if a CHECKSUM or TORN_PAGE_DETECTION value is present in the page header.

PAGE_VERIFY 옵션을 사용하는 경우 다음 중요 사항을 고려하십시오.Consider the following important points when you use the PAGE_VERIFY option:

  • 기본값은 CHECKSUM입니다.The default is CHECKSUM.
  • 사용자 또는 시스템 데이터베이스를 SQL Server 2005SQL Server 2005 이상 버전으로 업그레이드하는 경우 PAGE_VERIFY 값(NONE 또는 TORN_PAGE_DETECTION)이 유지됩니다.When a user or system database is upgraded to SQL Server 2005SQL Server 2005 or a later version, the PAGE_VERIFY value (NONE or TORN_PAGE_DETECTION) is retained. CHECKSUM을 사용하는 것이 좋습니다.We recommend that you use CHECKSUM.

    참고

    이전 버전의 SQL ServerSQL Server에서는 tempdb 데이터베이스의 PAGE_VERIFY 데이터베이스 옵션이 NONE으로 설정되며 수정할 수 없습니다.In earlier versions of SQL ServerSQL Server, the PAGE_VERIFY database option is set to NONE for the tempdb database and cannot be modified. SQL Server 2008SQL Server 2008 이상 버전에서 SQL ServerSQL Server 가 새로 설치된 경우 tempdb 데이터베이스의 기본값은 CHECKSUM입니다.In SQL Server 2008SQL Server 2008 and later versions, the default value for the tempdb database is CHECKSUM for new installations of SQL ServerSQL Server. SQL ServerSQL Server 설치를 업그레이드하면 기본값이 NONE으로 유지됩니다.When upgrading an installation SQL ServerSQL Server, the default value remains NONE. 이 옵션은 수정할 수 없습니다.The option can be modified. tempdb 데이터베이스에는 CHECKSUM을 사용하는 것이 좋습니다.We recommend that you use CHECKSUM for the tempdb database.

  • TORN_PAGE_DETECTION은 리소스는 덜 사용하지만 CHECKSUM 보호를 최소한으로 제공합니다.TORN_PAGE_DETECTION may use fewer resources but provides a minimal subset of the CHECKSUM protection.

  • PAGE_VERIFY는 데이터베이스를 잠그거나 오프라인으로 설정하지 않고 즉, 데이터베이스의 동시성을 방해하지 않고 설정할 수 있습니다.PAGE_VERIFY can be set without taking the database offline, locking the database, or otherwise impeding concurrency on that database.
  • CHECKSUM과 TORN_PAGE_DETECTION은 상호 배타적이므로CHECKSUM is mutually exclusive to TORN_PAGE_DETECTION. 두 옵션을 동시에 사용할 수 없습니다.Both options cannot be enabled at the same time.

조각난 페이지나 체크섬 오류가 검색되면 데이터를 복원하거나 오류가 인덱스 페이지에만 해당되는 경우 인덱스를 다시 작성하여 복구할 수 있습니다.When a torn page or checksum failure is detected, you can recover by restoring the data or potentially rebuilding the index if the failure is limited only to index pages. 체크섬 오류가 발생하면 DBCC CHECKDB를 실행하여 이 오류의 영향을 받는 데이터베이스 페이지의 형식 또는 페이지를 확인할 수 있습니다.If you encounter a checksum failure, to determine the type of database page or pages affected, run DBCC CHECKDB. 복원 옵션에 대한 자세한 내용은 RESTORE 인수를 참조하세요.For more information about restore options, see RESTORE Arguments. 데이터를 복원하면 데이터 손상 문제를 해결할 수 있지만 오류가 계속 발생하지 않도록 하려면 하드웨어 오류 등의 근본 원인을 진단하여 수정해야 합니다.Although restoring the data will resolve the data corruption problem, the root cause, for example, disk hardware failure, should be diagnosed and corrected as soon as possible to prevent continuing errors.

SQL ServerSQL Server는 체크섬, 조각난 페이지 또는 기타 I/O 오류로 읽기가 실패할 경우 4번 다시 시도합니다. will retry any read that fails with a checksum, torn page, or other I/O error four times. 다시 시도 중에 한 번이라도 읽기가 성공하면 오류 로그에 메시지가 기록되고 해당 읽기를 트리거한 명령이 계속 수행됩니다.If the read is successful in any one of the retry attempts, a message will be written to the error log and the command that triggered the read will continue. 다시 시도가 실패하면 824 오류 메시지와 함께 명령이 실패합니다.If the retry attempts fail, the command will fail with error message 824.

오류 메시지 823, 824 및 825에 대한 자세한 내용은 SQL Server에서 메시지 823 오류 문제를 해결하는 방법, SQL Server에서 메시지 824 문제를 해결하는 방법SQL Server에서 메시지 825(읽기 다시 시도) 오류 문제를 해결하는 방법을 참조하세요.For more information about error messages 823, 824 and 825, see How to troubleshoot a Msg 823 error in SQL Server, How to troubleshoot Msg 824 in SQL Server and How to troubleshoot Msg 825 (read retry) in SQL Server.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 page_verify_option 열 또는 DATABASEPROPERTYEX 함수의 IsTornPageDetectionEnabled 속성을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the page_verify_option column in the sys.databases catalog view or the IsTornPageDetectionEnabled property of the DATABASEPROPERTYEX function.

<remote_data_archive_option> ::=<remote_data_archive_option> ::=

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.

데이터베이스에 Stretch Database를 사용하거나 사용하지 않도록 설정합니다.Enables or disables Stretch Database for the database. 자세한 내용은 Stretch Database를 참조하십시오.For more info, see Stretch Database.

REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF ONREMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF ON
데이터베이스에 Stretch Database를 사용하도록 설정합니다.Enables Stretch Database for the database. 추가 필수 구성 요소를 비롯한 자세한 내용은 데이터베이스에서 Stretch Database 활성화를 참조하세요.For more info, including additional prerequisites, see Enable Stretch Database for a database.

사용 권한.Permissions. 데이터베이스 또는 테이블에서 Stretch Database를 사용하도록 설정하려면 db_owner 권한이 필요합니다.Enabling Stretch Database for a database or a table requires db_owner permissions. 데이터베이스에서 Stretch Database를 사용하도록 설정하려면 CONTROL DATABASE 사용 권한도 필요합니다.Enabling Stretch Database for a database also requires CONTROL DATABASE permissions.

SERVER = <server_name>SERVER = <server_name>
Azure 서버의 주소를 지정합니다.Specifies the address of the Azure server. 이름의 .database.windows.net 부분을 포함합니다.Include the .database.windows.net portion of the name. MyStretchDatabaseServer.database.windows.net)을 입력합니다.For example, MyStretchDatabaseServer.database.windows.net.

CREDENTIAL = <db_scoped_credential_name>CREDENTIAL = <db_scoped_credential_name>
Azure 서버에 연결하기 위해 SQL ServerSQL Server 인스턴스가 사용하는 데이터베이스 범위 자격 증명을 지정합니다.Specifies the database scoped credential that the instance of SQL ServerSQL Server uses to connect to the Azure server. 이 명령을 실행하기 전에 자격 증명이 있는지 확인해야 합니다.Make sure the credential exists before you run this command. 자세한 내용은 CREATE DATABASE SCOPED CREDENTIAL을 참조하세요.For more info, see CREATE DATABASE SCOPED CREDENTIAL.

FEDERATED_SERVICE_ACCOUNT = ON | OFFFEDERATED_SERVICE_ACCOUNT = ON | OFF
다음 조건이 모두 참인 경우 원격 Azure 서버와 통신하기 위해 온-프레미스 SQL Server용 페더레이션된 서비스 계정을 사용할 수 있습니다.You can use a federated service account for the on premises SQL Server to communicate with the remote Azure server when the following conditions are all true.

  • SQL Server 인스턴스를 실행하는 서비스 계정은 도메인 계정입니다.The service account under which the instance of SQL Server is running is a domain account.
  • 이 도메인 계정은 Active Directory가 Azure Active Directory와 페더레이션된 도메인에 속합니다.The domain account belongs to a domain whose Active Directory is federated with Azure Active Directory.
  • 원격 Azure 서버는 Azure Active Directory 인증을 지원하도록 구성됩니다.The remote Azure server is configured to support Azure Active Directory authentication.
  • SQL Server 인스턴스를 실행하는 서비스 계정은 원격 Azure 서버에서 dbmanager 또는 sysadmin 계정으로 구성되어야 합니다.The service account under which the instance of SQL Server is running must be configured as a dbmanager or sysadmin account on the remote Azure server.

ON을 지정하면 CREDENTIAL 인수도 지정할 수 없습니다.If you specify ON, you can't also specify the CREDENTIAL argument. OFF를 지정하면 CREDENTIAL 인수를 제공해야 합니다.If you specify OFF, you have to provide the CREDENTIAL argument.

OFFOFF
데이터베이스에 Stretch Database를 사용하지 않도록 설정합니다.Disables Stretch Database for the database. 자세한 내용은 Stretch Database 비활성화 및 원격 데이터 다시 가져오기를 사용하세요.For more info, see Disable Stretch Database and bring back remote data.

Stretch Database를 사용하도록 설정된 테이블이 데이터베이스에 더 이상 포함되어 있지 않은 경우에만 데이터베이스에 Stretch Database를 사용하지 않도록 설정할 수 있습니다.You can only disable Stretch Database for a database after the database no longer contains any tables that are enabled for Stretch Database. Stretch Database를 비활성화하면 데이터 마이그레이션이 중단되고 쿼리 결과에 원격 테이블의 결과가 더 이상 포함되지 않습니다.After you disable Stretch Database, data migration stops and query results no longer include results from remote tables.

Stretch를 사용하지 않도록 설정해도 원격 데이터베이스는 제거되지 않습니다.Disabling Stretch does not remove the remote database. 원격 데이터베이스를 삭제하려면 Azure Portal을 사용하여 삭제해야 합니다.If you want to delete the remote database, you have to drop it by using the Azure portal.

<service_broker_option> ::=<service_broker_option> ::=

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

메시지 배달을 사용 또는 사용하지 않도록 설정하거나, 새 Service BrokerService Broker 식별자를 설정하거나, 대화 우선 순위를 ON 또는 OFF로 설정하는 Service BrokerService Broker 옵션을 제어합니다.Controls the following Service BrokerService Broker options: enables or disables message delivery, sets a new Service BrokerService Broker identifier, or sets conversation priorities to ON or OFF.

ENABLE_BROKERENABLE_BROKER
지정된 데이터베이스에 대해 Service BrokerService Broker를 사용할 수 있도록 지정합니다.Specifies that Service BrokerService Broker is enabled for the specified database. 메시지 배달이 시작되고 sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 true로 설정됩니다.Message delivery is started, and the is_broker_enabled flag is set to true in the sys.databases catalog view. 데이터베이스에 기존 Service BrokerService Broker 식별자가 유지됩니다.The database retains the existing Service BrokerService Broker identifier. 데이터베이스가 데이터베이스 미러링 구성에서 보안 주체인 경우에는 Service Broker를 사용할 수 없습니다.Service broker cannot be enabled while the database is the principal in a database mirroring configuration.

참고

ENABLE_BROKER를 사용하려면 배타적 데이터베이스 잠금이 필요합니다.ENABLE_BROKER requires an exclusive database lock. 다른 세션이 데이터베이스의 리소스를 잠근 경우 ENABLE_BROKER는 다른 세션이 해당 잠금을 해제할 때까지 기다립니다.If other sessions have locked resources in the database, ENABLE_BROKER will wait until the other sessions release their locks. 사용자 데이터베이스에서 Service BrokerService Broker를 사용하도록 설정하려면 데이터베이스를 단일 사용자 모드로 설정하는 등의 방법으로 데이터베이스가 다른 세션에 의해 사용되지 않도록 한 다음 ALTER DATABASE SET ENABLE_BROKER 문을 실행합니다.To enable Service BrokerService Broker in a user database, ensure that no other sessions are using the database before you run the ALTER DATABASE SET ENABLE_BROKER statement, such as by putting the database in single user mode. msdb 데이터베이스에서 Service BrokerService Broker를 사용하도록 설정하려면 먼저 SQL ServerSQL Server 에이전트를 중지하여 Service BrokerService Broker에서 필요한 잠금을 획득할 수 있도록 합니다.To enable Service BrokerService Broker in the msdb database, first stop SQL ServerSQL Server Agent so that Service BrokerService Broker can obtain the necessary lock.

DISABLE_BROKERDISABLE_BROKER
지정된 데이터베이스에 대해 Service BrokerService Broker를 사용하지 않도록 지정합니다.Specifies that Service BrokerService Broker is disabled for the specified database. 메시지 배달이 중지되고 sys.databases 카탈로그 뷰에서 is_broker_enabled 플래그가 false로 설정됩니다.Message delivery is stopped, and the is_broker_enabled flag is set to false in the sys.databases catalog view. 데이터베이스에 기존 Service BrokerService Broker 식별자가 유지됩니다.The database retains the existing Service BrokerService Broker identifier.

NEW_BROKERNEW_BROKER
데이터베이스가 새 Broker 식별자를 받도록 지정합니다.Specifies that the database should receive a new broker identifier. 데이터베이스는 새 Service Broker가 될 것으로 간주되기 때문에 데이터베이스 내의 모든 기존 대화는 종료 대화 메시지 없이 즉시 제거됩니다.Because the database is considered to be a new service broker, all existing conversations in the database are immediately removed without producing end dialog messages. 이전 Service BrokerService Broker 식별자를 참조하는 경로는 새 식별자로 다시 만들어야 합니다.Any route that references the old Service BrokerService Broker identifier must be re-created with the new identifier.

ERROR_BROKER_CONVERSATIONSERROR_BROKER_CONVERSATIONS
Service BrokerService Broker 메시지 배달을 사용하도록 지정합니다.Specifies that Service BrokerService Broker message delivery is enabled. 이렇게 하면 데이터베이스에 대한 기존 Service BrokerService Broker 식별자가 유지됩니다.This preserves the existing Service BrokerService Broker identifier for the database. Service BrokerService Broker는 오류가 있는 데이터베이스의 모든 대화를 종료합니다. ends all conversations in the database with an error. 또한 응용 프로그램에서 기존 대화에 대해 일반적인 정리 작업을 수행할 수 있습니다.This enables applications to perform regular cleanup for existing conversations.

HONOR_BROKER_PRIORITY {ON | OFF}HONOR_BROKER_PRIORITY {ON | OFF}
ONON
보내기 작업에서 대화에 할당된 우선 순위 수준을 고려합니다.Send operations take into consideration the priority levels that are assigned to conversations. 우선 순위 수준이 높은 대화의 메시지는 우선 순위 수준이 낮은 대화의 메시지보다 먼저 전송됩니다.Messages from conversations that have high priority levels are sent before messages from conversations that are assigned low priority levels.

OFFOFF
모든 대화에 기본 우선 순위 수준이 할당된 것으로 간주하고 보내기 작업이 실행됩니다.Send operations run as if all conversations have the default priority level.

HONOR_BROKER_PRIORITY 옵션의 변경 내용은 전송 대기 중인 메시지가 없는 대화 또는 새 대화에 즉시 적용됩니다.Changes to the HONOR_BROKER_PRIORITY option take effect immediately for new dialogs or dialogs that have no messages waiting to be sent. ALTER DATABASE가 실행될 때 대화에 전송 대기 중인 메시지가 있는 경우에는 대화의 해당 메시지가 전송되기 전까지 새 설정이 적용되지 않습니다.Dialogs that have messages waiting to be sent when ALTER DATABASE is run will not pick up the new setting until some of the messages for the dialog have been sent. 모든 대화에 새 설정이 적용되는 데 걸리는 시간은 상황에 따라 크게 다를 수 있습니다.The amount of time before all dialogs start using the new setting can vary considerably.

이 속성의 현재 설정은 sys.databases 카탈로그 뷰의 is_broker_priority_honored 열에 보고됩니다.The current setting of this property is reported in the is_broker_priority_honored column in the sys.databases catalog view.

<snapshot_option> ::=<snapshot_option> ::=

트랜잭션 격리 수준을 결정합니다.Determines the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
데이터베이스 수준에서 스냅숏 옵션을 사용하도록 설정합니다.Enables Snapshot option at the database level. 이 옵션을 사용하면 트랜잭션에서 스냅숏 격리를 사용하지 않는 경우에도 DML 문에서 행 버전을 생성하기 시작합니다.When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. 이 옵션을 사용하도록 설정하면 트랜잭션에서 SNAPSHOT 트랜잭션 격리 수준을 지정할 수 있습니다.Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. 트랜잭션이 SNAPSHOT 격리 수준에서 실행되면 모든 문에서 트랜잭션 시작 시점의 상태로 데이터 스냅숏을 봅니다.When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. SNAPSHOT 격리 수준에서 실행되는 트랜잭션이 여러 데이터베이스의 데이터에 액세스할 경우 모든 데이터베이스에서 ALLOW_SNAPSHOT_ISOLATION이 ON으로 설정되어 있어야 합니다. 그렇지 않고 ALLOW_SNAPSHOT_ISOLATION이 OFF로 설정된 경우에는 트랜잭션 내의 각 문에서는 FROM 절의 참조에서 데이터베이스의 테이블에 대한 잠금 힌트를 사용해야 합니다.If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
데이터베이스 수준에서 스냅숏 옵션을 해제합니다.Turns off the Snapshot option at the database level. 트랜잭션에서는 SNAPSHOT 트랜잭션 격리 수준을 지정할 수 없습니다.Transactions cannot specify the SNAPSHOT transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION을 새 상태로 설정하는 경우(ON에서 OFF로 또는 OFF에서 ON으로) ALTER DATABASE는 데이터베이스 내의 기존 트랜잭션이 모두 커밋될 때까지 호출자에게 제어권을 반환하지 않습니다.When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE does not return control to the caller until all existing transactions in the database are committed. 데이터베이스가 이미 ALTER DATABASE 문에 지정된 상태인 경우 제어권은 호출자에게 즉시 반환됩니다.If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. ALTER DATABASE 문이 제어권을 빨리 반환하지 않는 경우 sys.dm_tran_active_snapshot_database_transactions를 사용하여 장기 실행 트랜잭션이 있는지 여부를 확인합니다.If the ALTER DATABASE statement does not return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. ALTER DATABASE 문을 취소하면 데이터베이스는 ALTER DATABASE가 시작된 시점의 상태로 남게 됩니다.If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. sys.databases 카탈로그 뷰는 데이터베이스에 있는 스냅숏 격리 트랜잭션의 상태를 나타냅니다.The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON인 경우 ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION을 OFF로 설정하는 작업은 6초간 일시 중지된 다음, 다시 시도됩니다.If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

데이터베이스가 OFFLINE인 경우 ALLOW_SNAPSHOT_ISOLATION의 상태를 변경할 수 없습니다.You cannot change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

READ_ONLY 데이터베이스에서 ALLOW_SNAPSHOT_ISOLATION을 설정하는 경우 데이터베이스가 이후에 READ_WRITE로 설정되어도 이 설정은 그대로 유지됩니다.If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be retained if the database is later set to READ_WRITE.

master, model, msdb 및 tempdb 데이터베이스에 대해 ALLOW_SNAPSHOT_ISOLATION 설정을 변경할 수 있습니다.You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. tempdb에 대한 설정을 변경하면 이 설정은 데이터베이스 엔진Database Engine 인스턴스가 중지 후 다시 시작할 때마다 유지됩니다.If you change the setting for tempdb, the setting is retained every time the instance of the 데이터베이스 엔진Database Engine is stopped and restarted. model 데이터베이스에 대한 설정을 변경하면 이 설정은 새로 생성된 모든 데이터베이스(tempdb 제외)의 기본값이 됩니다.If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

master 및 msdb 데이터베이스에 대해 이 옵션은 기본적으로 ON입니다.The option is ON, by default, for the master and msdb databases.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 snapshot_isolation_state 열을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
데이터베이스 수준에서 커밋된 읽기 스냅숏 옵션을 사용하도록 설정합니다.Enables Read-Committed Snapshot option at the database level. 이 옵션을 사용하면 트랜잭션에서 스냅숏 격리를 사용하지 않는 경우에도 DML 문에서 행 버전을 생성하기 시작합니다.When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. 이 옵션을 사용하도록 설정하면 커밋된 읽기 스냅숏 격리 수준을 지정하는 트랜잭션에서는 잠금 대신 행 버전 관리를 사용합니다.Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. 트랜잭션이 커밋된 읽기 격리 수준에서 실행되면 모든 문에서는 해당 문이 시작되던 때의 상태로 데이터 스냅숏을 봅니다.When a transaction runs at the read committed isolation level, all statements see a snapshot of data as it exists at the start of the statement.

OFFOFF
데이터베이스 수준에서 커밋된 읽기 스냅숏 옵션을 해제합니다.Turns off Read-Committed Snapshot option at the database level. READ COMMITTED 격리 수준을 지정하는 트랜잭션에서는 잠금을 사용합니다.Transactions specifying the READ COMMITTED isolation level use locking.

READ_COMMITTED_SNAPSHOT을 ON 또는 OFF로 설정하려면 ALTER DATABASE 명령을 실행하는 연결을 제외하고 데이터베이스에 대한 활성 상태의 연결이 없어야 합니다.To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection executing the ALTER DATABASE command. 그러나 데이터베이스가 단일 사용자 모드에 있을 필요는 없습니다.However, the database does not have to be in single-user mode. 데이터베이스가 OFFLINE인 경우 이 옵션의 상태를 변경할 수 없습니다.You cannot change the state of this option when the database is OFFLINE.

READ_ONLY 데이터베이스에서 READ_COMMITTED_SNAPSHOT을 설정하는 경우 데이터베이스가 이후에 READ_WRITE로 설정되어도 이 설정은 그대로 유지됩니다.If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be retained when the database is later set to READ_WRITE.

master, tempdb 또는 msdb 시스템 데이터베이스에 대해서는 READ_COMMITTED_SNAPSHOT을 ON으로 설정할 수 없습니다.READ_COMMITTED_SNAPSHOT cannot be turned ON for the master, tempdb, or msdb system databases. model 데이터베이스에 대한 설정을 변경하면 이 설정은 새로 생성된 모든 데이터베이스(tempdb 제외)의 기본값이 됩니다.If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰의 is_read_committed_snapshot_on 열을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

경고

DURABILITY = SCHEMA_ONLY를 사용하여 테이블이 만들어지고 그 후에 READ_COMMITTED_SNAPSHOTALTER DATABASE를 사용하여 변경되면 테이블의 데이터는 손실됩니다.When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

ONON
트랜잭션 격리 수준이 SNAPSHOT보다 낮은 격리 수준(예: READ COMMITTED 또는 READ UNCOMMITTED)으로 설정된 경우 메모리 최적화 테이블에 대한 해석된 모든 Transact-SQLTransact-SQL 작업이 SNAPSHOT 격리로 수행됩니다.When the transaction isolation level is set to any isolation level lower than SNAPSHOT (for example, READ COMMITTED or READ UNCOMMITTED), all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are performed under SNAPSHOT isolation. 이 작업은 세션 수준에서 트랜잭션 격리 수준이 명시적으로 설정되었거나 기본값이 암시적으로 사용되었는지에 관계없이 수행됩니다.This is done regardless of whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
메모리 최적화 테이블에서 해석된 Transact-SQLTransact-SQL 작업에 대해 트랜잭션 격리 수준을 승격하지 않습니다.Does not elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

데이터베이스가 OFFLINE인 경우 MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT의 상태를 변경할 수 없습니다.You cannot change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

이 옵션은 기본적으로 OFF입니다.The option is OFF, by default.

이 옵션의 현재 설정은 sys.databases 카탈로그 뷰에서 is_memory_optimized_elevate_to_snapshot_on 열을 검사하여 확인할 수 있습니다.The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

ANSI 호환 옵션을 데이터베이스 수준에서 제어합니다.Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
CREATE TABLE 또는 ALTER TABLE 문에서 Null 허용 여부가 명시적으로 정의되어 있지 않은 열 또는 CLR 사용자 정의 형식에 대한 기본값(NULL 또는 NOT NULL)을 결정합니다.Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability is not explicitly defined in CREATE TABLE or ALTER TABLE statements. 제약 조건이 정의된 열은 이 설정에 상관 없이 제약 조건 규칙을 따릅니다.Columns that are defined with constraints follow constraint rules regardless of this setting.

ONON
기본값은 NULL입니다.The default value is NULL.

OFFOFF
기본값이 NOT NULL입니다.The default value is NOT NULL.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULL_DEFAULT에 대한 기본 데이터베이스 수준 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 ANSI_NULL_DEFAULT를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET ANSI_NULL_DFLT_ON을 참조하세요.For more information, see SET ANSI_NULL_DFLT_ON.

ANSI 호환성을 위해 ANSI_NULL_DEFAULT 데이터베이스 옵션을 ON으로 설정하면 데이터베이스의 기본값이 NULL로 변경됩니다.For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_null_default_on 열 또는 DATABASEPROPERTYEX 함수의 IsAnsiNullDefault 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_ansi_null_default_on column in the sys.databases catalog view or the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
Null 값에 대한 모든 비교는 UNKNOWN으로 평가됩니다.All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
Null 값에 대한 비-UNICODE 값 비교는 두 값이 모두 NULL인 경우 TRUE로 평가됩니다.Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

중요

SQL ServerSQL Server의 이후 버전에서는 ANSI_NULLS가 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다.In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_NULLS에 대한 기본 데이터베이스 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 ANSI_NULLS를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET ANSI_NULLS를 참조하세요.For more information, see SET ANSI_NULLS.

계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경하는 경우에도 SET ANSI_NULLS를 ON으로 설정해야 합니다.SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_nulls_on 열 또는 DATABASEPROPERTYEX 함수의 IsAnsiNullsEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_ansi_nulls_on column in the sys.databases catalog view or the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
문자열을 동일한 길이만큼 채운 후에 varchar 또는 nvarchar 데이터 형식으로 변환 또는 삽입합니다.Strings are padded to the same length before conversion or inserting to a varchar or nvarchar data type.

varchar 또는 nvarchar 열에 삽입된 문자 값의 후행 공백과 varbinary 열에 삽입된 이진 값의 후행 0이 잘리지 않습니다.Trailing blanks in character values inserted into varchar or nvarchar columns and trailing zeros in binary values inserted into varbinary columns are not trimmed. 값은 열의 크기만큼 오른쪽에 공백으로 채워집니다.Values are not padded to the length of the column.

OFFOFF
varchar 또는 nvarchar의 후행 공백과 varbinary의 0이 잘립니다.Trailing blanks for varchar or nvarchar and zeros for varbinary are trimmed.

OFF로 지정하면 이 설정은 새 열의 정의에만 영향을 줍니다.When OFF is specified, this setting affects only the definition of new columns.

중요

SQL ServerSQL Server의 이후 버전에서는 ANSI_PADDING이 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다.In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. ANSI_PADDING은 항상 ON으로 설정하는 것이 좋습니다.We recommend that you always set ANSI_PADDING to ON. 계산 열이나 인덱싱된 뷰에서 인덱스를 만들거나 조작할 때는 ANSI_PADDING을 ON으로 설정해야 합니다.ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

ANSI_PADDING을 ON으로 설정하면 Null을 허용하는 char(n)binary(n) 열이 열 길이만큼 채워지지만 ANSI_PADDING을 OFF로 설정하면 후행 공백과 0이 잘립니다.char(n) and binary(n) columns that allow for nulls are padded to the length of the column when ANSI_PADDING is set to ON, but trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. Null을 허용하지 않는 char(n)binary(n) 열은 항상 열 길이만큼 채워집니다.char(n) and binary(n) columns that do not allow nulls are always padded to the length of the column.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_PADDING에 대한 기본 데이터베이스 수준 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 ANSI_PADDING을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET ANSI_PADDING을 참조하세요.For more information, see SET ANSI_PADDING.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_padding_on 열 또는 DATABASEPROPERTYEX 함수의 IsAnsiPaddingEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_ansi_padding_on column in the sys.databases catalog view or the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
0으로 나누기 또는 집계 함수에 Null 값이 나타나는 등의 상황에서 오류 또는 경고가 발생합니다.Errors or warnings are issued when conditions such as divide-by-zero occur or null values appear in aggregate functions.

OFFOFF
0으로 나누기와 같은 상황이 발생해도 아무런 경고도 발생하지 않으며 Null 값이 반환됩니다.No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경하는 경우 SET ANSI_WARNINGS를 ON으로 설정해야 합니다.SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

SET 문을 사용하여 설정한 연결 수준의 설정은 ANSI_WARNINGS에 대한 기본 데이터베이스 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 ANSI_WARNINGS를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET ANSI_WARNINGS를 참조하세요.For more information, see SET ANSI_WARNINGS.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_ansi_warnings_on 열 또는 DATABASEPROPERTYEX 함수의 IsAnsiWarningsEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_ansi_warnings_on column in the sys.databases catalog view or the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
쿼리 실행 중 오버플로 또는 0으로 나누기 오류가 발생하면 쿼리를 종료합니다.A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
이러한 오류 중 하나가 발생할 경우 경고 메시지가 표시되지만 쿼리, 일괄 처리 또는 트랜잭션은 오류가 발생하지 않은 것처럼 계속 처리됩니다.A warning message is displayed when one of these errors occurs, but the query, batch, or transaction continues to process as if no error occurred.

계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 SET ARITHABORT를 ON으로 설정해야 합니다.SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_arithabort_on 열 또는 DATABASEPROPERTYEX 함수의 IsArithmeticAbortEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_arithabort_on column in the sys.databases catalog view or the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }
자세한 내용은 ALTER DATABASE 호환성 수준을 참조하세요.For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
피연산자 중 하나가 NULL일 경우 연결 연산의 결과는 NULL입니다.The result of a concatenation operation is NULL when either operand is NULL. 예를 들어 문자열 "This is"와 NULL을 연결하면 결과는 "This is"가 아니라 NULL이 됩니다.For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
Null 값은 빈 문자열로 취급됩니다.The null value is treated as an empty character string.

계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 SET CONCAT_NULL_YIELDS_NULL은 반드시 ON으로 설정되어야 합니다.CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

중요

SQL ServerSQL Server의 이후 버전에서는 CONCAT_NULL_YIELDS_NULL이 항상 ON으로 설정되므로 명시적으로 이 옵션을 OFF로 설정한 응용 프로그램에서는 오류가 발생합니다.In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET 문을 사용하여 설정한 연결 수준의 설정은 CONCAT_NULL_YIELDS_NULL의 기본 데이터베이스 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 세션의 CONCAT_NULL_YIELDS_NULL을 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET CONCAT_NULL_YIELDS_NULL을 참조하세요.For more information, see SET CONCAT_NULL_YIELDS_NULL.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_concat_null_yields_null_on 열 또는 DATABASEPROPERTYEX 함수의 IsNullConcat 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_concat_null_yields_null_on column in the sys.databases catalog view or the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
큰따옴표는 구분 식별자를 묶을 때 사용할 수 있습니다.Double quotation marks can be used to enclose delimited identifiers.

큰따옴표로 구분되는 모든 문자열은 개체 식별자로 해석됩니다.All strings delimited by double quotation marks are interpreted as object identifiers. 따옴표 붙은 식별자는 Transact-SQLTransact-SQL 식별자 규칙을 따르지 않아도 됩니다.Quoted identifiers do not have to follow the Transact-SQLTransact-SQL rules for identifiers. 따옴표 붙은 식별자는 키워드일 수 있으며 Transact-SQLTransact-SQL 식별자에서 일반적으로 허용되지 않는 문자를 포함할 수 있습니다.They can be keywords and can include characters not generally allowed in Transact-SQLTransact-SQL identifiers. 작은따옴표(')가 리터럴 문자열의 일부로 포함되면 큰따옴표(")로 나타낼 수 있습니다.If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
식별자는 따옴표 안에 있을 수 없으며 식별자에 대한 모든 Transact-SQLTransact-SQL 규칙을 따라야 합니다.Identifiers cannot be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. 리터럴은 작은따옴표 또는 큰따옴표로 구분할 수 있습니다.Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server에서도 식별자를 대괄호([ ])로 구분할 수 있습니다. also allows for identifiers to be delimited by square brackets ([ ]). 대괄호로 묶은 식별자는 QUOTED_IDENTIFIER의 설정에 관계없이 항상 사용할 수 있습니다.Bracketed identifiers can always be used, regardless of the setting of QUOTED_IDENTIFIER. 자세한 내용은 Database Identifiers을 참조하세요.For more information, see Database Identifiers.

테이블이 생성될 때 QUOTED IDENTIFIER 옵션이 OFF로 설정된 경우에도 해당 테이블의 메타데이터에는 항상 ON으로 저장됩니다.When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table, even if the option is set to OFF when the table is created.

SET 문을 사용하여 설정한 연결 수준의 설정은 QUOTED_IDENTIFIER의 기본 데이터베이스 설정보다 우선적으로 적용됩니다.Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. 기본적으로 ODBC 및 OLE DB 클라이언트는 SQL ServerSQL Server 인스턴스에 연결할 때 QUOTED_IDENTIFIER를 ON으로 설정하여 연결 수준의 SET 문을 실행합니다.By default, ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON when connecting to an instance of SQL ServerSQL Server. 자세한 내용은 SET QUOTED_IDENTIFIER를 참조하세요.For more information, see SET QUOTED_IDENTIFIER.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_quoted_identifier_on 열 또는 DATABASEPROPERTYEX 함수의 IsQuotedIdentifiersEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_quoted_identifier_on column in the sys.databases catalog view or the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
식에서 전체 자릿수가 손실되면 오류가 발생합니다.An error is generated when loss of precision occurs in an expression.

OFFOFF
전체 자릿수가 손실되어도 오류 메시지가 생성되지 않으며 결과를 저장하는 열 또는 변수의 전체 자릿수로 결과가 반올림됩니다.Losses of precision do not generate error messages and the result is rounded to the precision of the column or variable storing the result.

계산 열 또는 인덱싱된 뷰에서 인덱스를 만들거나 변경할 때 NUMERIC_ROUNDABORT는 OFF로 설정되어야 합니다.NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_numeric_roundabort_on 열 또는 DATABASEPROPERTYEX 함수의 IsNumericRoundAbortEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_numeric_roundabort_on column in the sys.databases catalog view or the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
AFTER 트리거의 재귀적 실행이 허용됩니다.Recursive firing of AFTER triggers is allowed.

OFFOFF
AFTER 트리거의 직접 재귀적 실행이 허용되지 않습니다.Only direct recursive firing of AFTER triggers is not allowed. AFTER 트리거의 간접 재귀도 사용하지 않도록 하려면 sp_configure를 사용하여 nested triggers 서버 옵션을 0으로 설정합니다.To also disable indirect recursion of AFTER triggers, set the nested triggers server option to 0 by using sp_configure.

참고

RECURSIVE_TRIGGERS가 OFF로 설정되면 직접 재귀만 금지됩니다.Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. 간접 재귀를 사용하지 않도록 하려면 nested triggers 서버 옵션을 0으로 설정해야 합니다.To disable indirect recursion, you must also set the nested triggers server option to 0.

이 옵션의 상태는 sys.databases 카탈로그 뷰의 is_recursive_triggers_on 열 또는 DATABASEPROPERTYEX 함수의 IsRecursiveTriggersEnabled 속성을 검사하여 확인할 수 있습니다.The status of this option can be determined by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::=<target_recovery_time_option> ::=

적용 대상: SQL Server 2012(11.x)SQL Server 2012 (11.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2012(11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

데이터베이스 단위로 간접 검사점의 빈도를 지정합니다.Specifies the frequency of indirect checkpoints on a per-database basis. SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 새 데이터베이스의 기본값은 1분이며 데이터베이스에서 간접 검사점을 사용한다는 것을 나타냅니다.Beginning with SQL Server 2016(13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. 이전 버전의 기본값 0은 데이터베이스가 자동 검사점을 사용함을 나타내며, 빈도는 서버 인스턴스의 복구 간격 설정에 따라 달라집니다.For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft에서는 대부분의 시스템에 1분을 권장합니다. recommends 1 minute for most systems.

TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }
target_recovery_timetarget_recovery_time
충돌 시 지정된 데이터베이스를 복구하는 데 걸리는 최대 시간을 지정합니다.Specifies the maximum bound on the time to recover the specified database in the event of a crash.

SECONDSSECONDS
target_recovery_time 이 초 단위로 표현됨을 나타냅니다.Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
target_recovery_time 이 분 단위로 표현됨을 나타냅니다.Indicates that target_recovery_time is expressed as the number of minutes.

간접 검사점에 대한 자세한 내용은 데이터베이스 검사점을 참조하세요.For more information about indirect checkpoints, see Database Checkpoints.

WITH <termination> ::=WITH <termination> ::=

데이터베이스가 다른 상태로 바뀔 때 완료되지 않은 트랜잭션을 롤백할 시점을 지정합니다.Specifies when to roll back incomplete transactions when the database is transitioned from one state to another. termination 절을 생략하면 데이터베이스에 잠금이 있는 경우 ALTER DATABASE 문이 무기한 대기합니다.If the termination clause is omitted, the ALTER DATABASE statement waits indefinitely if there is any lock on the database. termination 절은 SET 절 다음에 한 번만 지정할 수 있습니다.Only one termination clause can be specified, and it follows the SET clauses.

참고

모든 데이터베이스 옵션에서 WITH <termination> 절을 사용하는 것은 아닙니다.Not all database options use the WITH <termination> clause. 자세한 내용은 이 항목에 있는 "주의 섹션"의 "옵션 설정 " 아래에 있는 표를 참조하십시오.For more information, see the table under "Setting Options of the "Remarks" section of this topic.

ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
지정한 시간(초)이 경과한 후 롤백할 것인지 또는 즉시 롤백할 것인지를 지정합니다.Specifies whether to roll back after the specified number of seconds or immediately.

NO_WAITNO_WAIT
트랜잭션이 자체적으로 커밋되거나 롤백되기를 기다리지 않고 요청된 데이터베이스 상태 또는 옵션 변경을 즉시 완료할 수 없는 경우에 요청이 실패하도록 지정합니다.Specifies that if the requested database state or option change cannot complete immediately without waiting for transactions to commit or roll back on their own, the request will fail.

옵션 설정Setting Options

데이터베이스 옵션에 대한 현재 설정을 검색하려면 sys.databases 카탈로그 뷰 또는 DATABASEPROPERTYEX를 사용합니다.To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

데이터베이스 옵션을 설정하면 수정 사항이 즉시 반영됩니다.After you set a database option, the modification takes effect immediately.

새로 만든 모든 데이터베이스에 대한 데이터베이스 옵션의 기본값을 바꾸려면 model 데이터베이스에서 해당 데이터베이스 옵션을 변경하십시오.To change the default values for any one of the database options for all newly created databases, change the appropriate database option in the model database.

모든 데이터베이스 옵션에서 WITH <termination> 절을 사용하거나 데이터베이스 옵션을 다른 옵션과 조합하여 지정할 수 있는 것은 아닙니다.Not all database options use the WITH <termination> clause or can be specified in combination with other options. 다음 표에서는 이러한 옵션 및 이들의 옵션과 종료 상태를 나열합니다.The following table lists these options and their option and termination status.

옵션 범주Options category 다른 옵션과 함께 지정할 수 있음Can be specified with other options WITH <termination> 절을 사용할 수 있음Can use the WITH <termination> clause
<db_state_option><db_state_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<db_user_access_option><db_user_access_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<db_update_option><db_update_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<delayed_durability_option><delayed_durability_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<external_access_option><external_access_option> 사용자 계정 컨트롤Yes 아니오No
<cursor_option><cursor_option> 사용자 계정 컨트롤Yes 아니오No
<auto_option><auto_option> 사용자 계정 컨트롤Yes 아니오No
<sql_option><sql_option> 사용자 계정 컨트롤Yes 아니오No
<recovery_option><recovery_option> 사용자 계정 컨트롤Yes 아니오No
<target_recovery_time_option><target_recovery_time_option> 아니오No 사용자 계정 컨트롤Yes
<database_mirroring_option><database_mirroring_option> 아니오No 아니오No
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION 아니오No 아니오No
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT 아니오No 사용자 계정 컨트롤Yes
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOTMEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<service_broker_option><service_broker_option> 사용자 계정 컨트롤Yes 아니오No
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<parameterization_option><parameterization_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<change_tracking_option><change_tracking_option> 사용자 계정 컨트롤Yes 사용자 계정 컨트롤Yes
<db_encryption_option><db_encryption_option> 사용자 계정 컨트롤Yes 아니오No

SQL ServerSQL Server의 인스턴스에 대한 계획 캐시는 다음 옵션 중 하나를 설정하여 삭제됩니다.The plan cache for the instance of SQL ServerSQL Server is cleared by setting one of the following options:

OFFLINEOFFLINE READ_WRITEREAD_WRITE
ONLINEONLINE MODIFY FILEGROUP DEFAULTMODIFY FILEGROUP DEFAULT
MODIFY_NAMEMODIFY_NAME MODIFY FILEGROUP READ_WRITEMODIFY FILEGROUP READ_WRITE
COLLATECOLLATE MODIFY FILEGROUP READ_ONLYMODIFY FILEGROUP READ_ONLY
READ_ONLYREAD_ONLY

프로시저 캐시는 다음 시나리오에도 플러시됩니다.The procedure cache is also flushed in the following scenarios.

  • 데이터베이스에서 AUTO_CLOSE 데이터베이스 옵션이 ON으로 설정되어 있습니다.A database has the AUTO_CLOSE database option set to ON. 사용자 연결이 데이터베이스를 참조하거나 사용하지 않으면 백그라운드 작업에서 자동으로 데이터베이스를 닫고 종료하려고 합니다.When no user connection references or uses the database, the background task tries to close and shut down the database automatically.
  • 기본 옵션이 있는 데이터베이스에 대해 여러 가지 쿼리를 실행합니다.You run several queries against a database that has default options. 그러면 데이터베이스가 삭제됩니다.Then, the database is dropped.
  • 원본 데이터베이스에 대한 데이터베이스 스냅숏이 삭제됩니다.A database snapshot for a source database is dropped.
  • 데이터베이스에 대한 트랜잭션 로그를 성공적으로 다시 작성합니다.You successfully rebuild the transaction log for a database.
  • 데이터베이스 백업을 복원합니다.You restore a database backup.
  • 데이터베이스를 분리합니다.You detach a database.

계획 캐시를 삭제하면 모든 후속 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하될 수 있습니다.Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. 계획 캐시의 삭제된 각 캐시스토어에 대해 SQL ServerSQL Server 오류 로그에 "데이터베이스 유지 관리 또는 재구성 작업으로 인해 '%s' 캐시스토어(계획 캐시의 일부)에 대한 캐시스토어 플러시가 SQL ServerSQL Server에서 %d번 발견되었습니다"라는 정보 메시지가 있습니다.For each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". 이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.This message is logged every five minutes as long as the cache is flushed within that time interval.

Examples

1.A. 데이터베이스 옵션 설정Setting options on a database

다음 예에서는 AdventureWorks2012AdventureWorks2012 예제 데이터베이스에 대해 복구 모델 및 데이터 페이지 확인 옵션을 설정합니다.The following example sets the recovery model and data page verification options for the AdventureWorks2012AdventureWorks2012 sample database.

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

2.B. 데이터베이스를 READ_ONLY로 설정Setting the database to READ_ONLY

데이터베이스 또는 파일 그룹의 상태를 READ_ONLY 또는 READ_WRITE로 변경하려면 데이터베이스에 대한 배타적 액세스가 필요합니다.Changing the state of a database or filegroup to READ_ONLY or READ_WRITE requires exclusive access to the database. 다음 예에서는 데이터베이스를 SINGLE_USER 모드로 설정하여 배타적 액세스 권한을 확보한 다음The following example sets the database to SINGLE_USER mode to obtain exclusive access. AdventureWorks2012AdventureWorks2012 데이터베이스의 상태를 READ_ONLY로 설정한 후 데이터베이스 액세스를 모든 사용자에게 반환합니다.The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

참고

이 예에서는 첫 번째 WITH ROLLBACK IMMEDIATE 문에서 ALTER DATABASE 종료 옵션을 사용합니다.This example uses the termination option WITH ROLLBACK IMMEDIATE in the first ALTER DATABASE statement. 완료되지 않은 트랜잭션은 모두 롤백되며 AdventureWorks2012AdventureWorks2012 데이터베이스에 대한 다른 모든 연결은 즉시 끊어집니다.All incomplete transactions will be rolled back and any other connections to the AdventureWorks2012AdventureWorks2012 database will be immediately disconnected.

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.C. 데이터베이스에서 스냅숏 격리 활성화Enabling snapshot isolation on a database

다음 예에서는 AdventureWorks2012AdventureWorks2012 데이터베이스에 대해 스냅숏 격리 프레임워크 옵션을 활성화합니다.The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE AdventureWorks2012;  
USE master;  
GO  
ALTER DATABASE AdventureWorks2012  
SET ALLOW_SNAPSHOT_ISOLATION ON;  
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  

결과 집합은 스냅숏 격리 프레임워크가 활성화되었음을 보여 줍니다.The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
AdventureWorks2012AdventureWorks2012 @shouldalert1 ONON

4.D. 변경 내용 추적 설정, 수정 및 해제Enabling, modifying, and disabling change tracking

다음 예에서는 AdventureWorks2012AdventureWorks2012 데이터베이스에 대해 변경 내용 추적을 설정하고 보존 기간을 2일로 설정합니다.The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

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

다음 예에서는 보존 기간을 3 일로 바꾸는 방법을 보여 줍니다.The following example shows how to change the retention period to 3 days.

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

다음 예에서는 AdventureWorks2012AdventureWorks2012 데이터베이스에 대한 변경 내용 추적을 해제하는 방법을 보여 줍니다.The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE AdventureWorks2012  
SET CHANGE_TRACKING = OFF;  

5.E. 쿼리 저장소를 사용하도록 설정Enabling the query store

적용 대상: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) ~ SQL Server 2017SQL Server 2017).Applies to: SQL ServerSQL Server ( SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017).

다음 예제에서는 쿼리 저장소를 사용하도록 설정하고 쿼리 저장소 매개 변수를 구성합니다.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2012  
SET QUERY_STORE = ON   
    (  
      OPERATION_MODE = READ_WRITE   
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 )  
    , DATA_FLUSH_INTERVAL_SECONDS = 900   
    , MAX_STORAGE_SIZE_MB = 1024   
    , INTERVAL_LENGTH_MINUTES = 60   
    );  

참고 항목See Also

ALTER DATABASE 호환성 수준 ALTER DATABASE Compatibility Level
ALTER DATABASE 데이터베이스 미러링 ALTER DATABASE Database Mirroring
ALTER DATABASE SET HADR ALTER DATABASE SET HADR
통계 Statistics
CREATE DATABASE CREATE DATABASE
변경 내용 추적 설정 및 해제 Enable and Disable Change Tracking
DATABASEPROPERTYEX DATABASEPROPERTYEX
DROP DATABASE DROP DATABASE
SET TRANSACTION ISOLATION LEVEL SET TRANSACTION ISOLATION LEVEL
sp_configure sp_configure
sys.databases sys.databases
sys.data_spaces sys.data_spaces
쿼리 저장소에 대한 모범 사례Best Practice with the Query Store