내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

ALTER DATABASE(Transact-SQL)

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

적용 대상: SQL Server(SQL Server 2008 - 현재 버전), Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

ALTER DATABASE 구문은 설명할 항목이 많기 때문에 다음 항목으로 구분하여 설명됩니다.

ALTER DATABASE

현재 항목은 데이터베이스의 이름 및 데이터 정렬 변경을 위한 구문을 제공합니다.

ALTER DATABASE 파일 및 파일 그룹 옵션

데이터베이스의 파일과 파일 그룹을 추가 및 제거하고 파일과 파일 그룹의 특성을 변경하기 위한 구문을 제공합니다.

ALTER DATABASE SET 옵션

ALTER DATABASE의 SET 옵션을 사용하여 데이터베이스의 특성을 변경하기 위한 구문을 제공합니다.

ALTER DATABASE 데이터베이스 미러링

데이터베이스 미러링과 관련된 ALTER DATABASE의 SET 옵션에 대한 구문을 제공합니다.

ALTER DATABASE SET HADR

AlwaysOn 가용성 그룹의 보조 복제본에서 보조 데이터베이스를 구성하기 위한 ALTER DATABASE의 AlwaysOn 가용성 그룹 옵션에 대한 구문을 제공합니다.

ALTER DATABASE 호환성 수준

데이터베이스 호환성 수준과 관련된 ALTER DATABASE의 SET 옵션에 대한 구문을 제공합니다.

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

-- SQL Server Syntax
ALTER DATABASE { database_name  | CURRENT }
{
    MODIFY NAME = new_database_name 
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | <set_database_options>
}
[;]

<file_and_filegroup_options >::=
  <add_or_modify_files>::=
  <filespec>::= 
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::= 

<set_database_options>::=
  <optionspec>::= 
  <auto_option> ::= 
  <change_tracking_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_options> ::=
  <HADR_options> ::=  
  <parameterization_option> ::=
  <recovery_option> ::= 
  <service_broker_option> ::=
  <snapshot_option> ::=
  <sql_option> ::= 
  <termination> ::=
-- Azure SQL Database Syntax
ALTER DATABASE database_name 
{
    MODIFY NAME =new_database_name
  | MODIFY ( <edition_options> [, ... n] ) 
  | SET { <set_database_options> } 
}

<edition_options> ::= 
{
    ( MAXSIZE = {1 | 5 | 10 | 20 | 30 … 150} GB ) 
  | ( EDITION = {'web' | 'business'} ) 
}

<set_database_options> ::= 
    <db_update_option>
<db_update_option> ::= 
    { READ_ONLY | READ_WRITE }
 [;]

database_name

수정할 데이터베이스의 이름입니다.

참고 참고

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

CURRENT

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

현재 사용 중인 데이터베이스를 변경하도록 지정합니다.

MODIFY NAME =new_database_name

데이터베이스의 이름을 new_database_name에 지정된 이름으로 바꿉니다.

COLLATE collation_name

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

데이터베이스에 대한 데이터 정렬을 지정합니다. collation_name으로는 Windows 데이터 정렬 이름 또는 SQL 데이터 정렬 이름을 사용할 수 있습니다. 이를 지정하지 않으면 SQL Server 인스턴스의 데이터 정렬이 지정됩니다.

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

MODIFY (MAXSIZE = [1 | 5 | 10 | 20 | 30 … 150….500] GB)

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

데이터베이스의 최대 크기를 지정합니다. 최대 크기는 데이터베이스의 EDITION 속성에 대한 유효한 값 집합을 따라야 합니다. 데이터베이스의 최대 크기를 변경하면 데이터베이스 EDITION이 변경될 수 있습니다. 다음 표에서는 SQL 데이터베이스 서비스 계층에 대해 지원되는 MAXSIZE 값 및 기본값(D)을 보여 줍니다.

MAXSIZE

Web

Business

Basic

Standard

Premium

100MB

√ (D)

500MB

√ (D)

1GB

√ (D)

2GB

5GB

10GB

√ (D)

√ (D)

20GB

30GB

40GB

50GB

100GB

150GB

200GB

250GB

300GB

400GB

500GB

MAXSIZE 및 EDITION 인수에는 다음과 같은 규칙이 적용됩니다.

데이터베이스 서버에는 다음과 같은 두 가지 유형이 있습니다. 한 유형에서는 Web, Business 및 Premium이 지원되고 다른 유형에서는 Basic, Standard 및 Premium이 지원됩니다. 규칙은 ALTER 명령을 실행 중인 서버에 따라 달라질 수 있습니다.

Web, Business 및 Premium을 지원하는 서버(서버 버전 1.0이라고도 부름)

  • MAXSIZE 값(지정된 경우)은 위 표에 표시된 유효한 값이어야 합니다.

  • MAXSIZE가 5GB보다 작게 설정되었고 EDITION이 지정되지 않은 경우 데이터베이스 버전은 자동으로 Web으로 설정됩니다.

  • MAXSIZE가 5GB보다 크게 설정되었고 EDITION이 지정되지 않은 경우 데이터베이스 버전은 자동으로 Business로 설정됩니다.

  • EDITION이 지정되었지만 MAXSIZE가 지정되지 않은 경우 해당 버전에 대한 기본값이 사용됩니다. 예를 들어 EDITION이 Business로 설정되었고 MAXSIZE가 지정되지 않았으면 MAXSIZE가 자동으로 10GB로 설정됩니다.

  • MAXSIZE 또는 EDITION이 모두 지정되지 않았으면 EDITION이 Web으로 설정되고 MAXSIZE는 1GB로 설정됩니다.

Basic, Standard 및 Premium을 지원하는 서버(서버 버전 2.0이라고도 부름)

  • MAXSIZE 값(지정된 경우)은 위 표에 표시된 유효한 값이어야 합니다.

  • EDITION이 지정되었지만 MAXSIZE가 지정되지 않은 경우 해당 버전에 대한 기본값이 사용됩니다. 예를 들어 EDITION이 Standard로 설정되었고 MAXSIZE가 지정되지 않았으면 MAXSIZE가 자동으로 500MB로 설정됩니다.

  • MAXSIZE 또는 EDITION이 모두 지정되지 않았으면 EDITION이 Basic으로 설정되고 MAXSIZE는 100MB로 설정됩니다.

MODIFY (EDITION = ['web' | 'business'| 'basic' | 'standard' 'premium' |])

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

데이터베이스 버전을 변경합니다. SQL 데이터베이스 서비스 계층은 EDITION 매개 변수를 사용해서 설정 또는 수정할 수 있습니다. 데이터베이스의 MAXSIZE 속성이 해당 버전에서 지원되는 유효 범위 밖의 값으로 설정되면 EDITION 변경이 실패합니다.

EDITION에 지원되는 값은 ALTER 명령을 실행 중인 데이터베이스 서버에서 지원되어야 합니다. 예를 들어 Web, Business 및 Premium을 지원하는 서버에서 명령을 실행할 경우 EDITION을 'web'으로 설정할 수 없습니다.

중요 정보 중요

Web 및 Business 서비스 계층은 이후 릴리스에서 지원되지 않습니다. 자세한 내용은 Web 및 Business FAQ를 참조하십시오.

<db_update_option> ::=

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

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

{ READ_ONLY | READ_WRITE }

READ_ONLY

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

READ_WRITE

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

참고 참고

SQL 데이터베이스 연결된 데이터베이스에서 SET { READ_ONLY | READ_WRITE }는 해제됩니다.

<delayed_durability_option> ::=

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

자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)트랜잭션 내구성 제어을 참조하십시오.

<file_and_filegroup_options >::=

자세한 내용은 ALTER DATABASE 파일 및 파일 그룹 옵션(Transact-SQL)을 참조하십시오.

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

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

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

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

데이터베이스가 RESTORING 상태에 있으면 ALTER DATABASE 문이 대부분 실패합니다. 단, 데이터베이스 미러링 옵션을 설정하는 경우는 예외입니다. 활성 복원 작업 중이나 데이터베이스 또는 로그 파일의 복원 작업이 손상된 백업 파일로 인해 실패할 경우 데이터베이스가 RESTORING 상태일 수 있습니다.

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

OFFLINE

READ_WRITE

ONLINE

MODIFY FILEGROUP DEFAULT

MODIFY_NAME

MODIFY FILEGROUP READ_WRITE

COLLATE

MODIFY FILEGROUP READ_ONLY

READ_ONLY

PAGE_VERIFY

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

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

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

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

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

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

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

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

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

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

  1. 현재 데이터베이스를 사용하고 있는 다른 사용자가 없습니다.

  2. 데이터베이스의 데이터 정렬에 종속된 스키마 바운드 개체가 없습니다.

    데이터베이스 데이터 정렬에 종속되는 다음과 같은 개체가 데이터베이스에 있는 경우 ALTER DATABASEdatabase_nameCOLLATE 문은 실패하게 됩니다. SQL Server는 ALTER 동작을 차단하는 각 개체에 대해 오류 메시지를 반환합니다.

    • SCHEMABINDING으로 생성된 사용자 정의 함수 및 뷰

    • 계산 열

    • CHECK 제약 조건

    • 기본 데이터베이스 데이터 정렬에서 상속 받은 데이터 정렬을 사용하는 문자 열이 있는 테이블을 반환하는 테이블 반환 함수

    비스키마 바운드 엔터티에 대한 종속성 정보는 데이터베이스 데이터 정렬이 변경될 때 자동으로 업데이트됩니다.

데이터베이스 데이터 정렬을 변경해도 데이터베이스 개체에 대한 시스템 이름이 중복되는 경우는 발생하지 않습니다. 데이터 정렬 변경 시 중복 이름이 발생하면 다음 네임스페이스에서 데이터베이스 데이터 정렬 변경이 실패할 수 있습니다.

  • 개체 이름(프로시저, 테이블, 트리거, 뷰 등)

  • 스키마 이름

  • 보안 주체(그룹, 역할, 사용자 등)

  • 스칼라 유형 이름(시스템 및 사용자 정의 유형)

  • 전체 텍스트 카탈로그 이름

  • 개체 내의 열 또는 매개 변수 이름

  • 테이블 내의 인덱스 이름

새로운 데이터 정렬로 중복 이름이 생성되는 경우 변경 동작은 실패하게 되며 SQL Server는 중복이 발견된 네임스페이스를 지정하는 오류 메시지를 반환합니다.

데이터베이스 정보 보기

카탈로그 뷰, 시스템 함수 및 시스템 저장 프로시저를 사용하여 데이터베이스, 파일 및 파일 그룹에 대한 정보를 반환할 수 있습니다.

SQL Server

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

Azure SQL 데이터베이스

프로비전 프로세스를 통해 만들어진 서버 수준의 보안 주체 로그인 또는 dbmanager 데이터베이스 역할의 멤버만 데이터베이스를 변경할 수 있습니다.

보안 정보 보안 정보

데이터베이스의 소유자가 dbmanager 역할의 멤버인 경우 데이터베이스를 변경할 수 있습니다.

1.데이터베이스의 이름 변경

다음 예에서는 AdventureWorks2012 데이터베이스의 이름을 Northwind로 변경합니다.

USE master;
GO
ALTER DATABASE AdventureWorks2012
Modify Name = Northwind ;
GO

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

다음 예에서는 SQL_Latin1_General_CP1_CI_AS 데이터 정렬을 사용하여 testdb라는 데이터베이스를 만든 다음 testdb 데이터베이스의 데이터 정렬을 COLLATE French_CI_AI로 변경합니다.

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

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO
이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft