ALTER DATABASE języka Transact-SQL)

Modyfikuje bazę danych, lub plików oraz filegroups skojarzonymi z bazą danych.Dodaje lub usuwa plików i filegroups z bazy danych, zmienia atrybuty bazy danych lub jej plików i filegroups, zmiany sortowanie bazy danych i ustawia opcje bazy danych.Nie można modyfikować bazę danych migawek.Aby zmodyfikować opcje bazy danych związane z replikacją, należy użyć sp_replicationdboption.

Ze względu na jego długość składni instrukcji ALTER DATABASE jest podzielone na następujące tematy:

Topic link iconKonwencje składni języka Transact-SQL

ALTER DATABASE database_name 
{
  | 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> ::=
    <external_access_option> ::=
    <parameterization_option> ::=
    <recovery_option> ::= 
    <service_broker_option> ::=
    <snapshot_option> ::=
    <sql_option> ::= 
    <termination> ::=

Argumenty

  • database_name
    Jest nazwą bazy danych, które zostaną zmodyfikowane.

  • MODIFY NAME **=**new_database_name
    Zmienia nazwę bazy danych z nazwą określoną jako new_database_name.

  • collation_name SORTOWANIE
    Specifies the collation for the database.collation_name can be either a Windows collation name or a SQL collation name.Jeśli nie zostanie określony, baza danych jest przypisany sortowanie wystąpienie SQL Server.

    Aby uzyskać więcej informacji na temat nazw sortowanie systemu Windows i programu SQL zobacz COLLATE (Transact-SQL).

<file_and_filegroup_options >::=

Aby uzyskać więcej informacji zobaczALTER DATABASE File and Filegroup Options (Transact-SQL).

<set_database_options >::=

Aby uzyskać więcej informacji zobaczALTER DATABASE SET Options (Transact-SQL).

Remarks

Aby usunąć bazę danych, należy użyć USUWANIE BAZY DANYCH.

Aby zmniejszyć rozmiar bazy danych, należy użyć DBCC SHRINKDATABASE.

Instrukcja ALTER DATABASE musi być uruchomiony tryb automatycznego zatwierdzania (domyślny tryb zarządzania transakcji) i nie jest dozwolona w transakcjach jawny lub niejawny.Aby uzyskać więcej informacji zobaczTransakcje autocommit.

W SQL Server 2005 lub nowszy, stan bazy danych pliku (na przykład, tryb online lub offline), są obsługiwane niezależnie od stanu bazy danych. Aby uzyskać więcej informacji zobaczFile States.Stan plików w grupa plików określa dostępność całą grupa plików.Dla grupa plików były dostępne wszystkie pliki znajdujące się w grupa plików, w musi być w trybie online.Jeśli grupa plików jest w trybie offline, próby dostęp grupa plików, w instrukcja języka SQL zakończy się niepowodzeniem z powodu błędu.Podczas tworzenia planów kwerend dla instrukcji SELECT, optymalizator kwerendy pozwala uniknąć ponownego zbudowania indeksów nie klastrowanych i widoków indeksowanych, które znajdują się w trybie offline filegroups.Dzięki temu te instrukcje powiodła się.Jednak jeśli grupa plików trybu offline zawiera sterty lub indeks klastrowany w tabela miejsce docelowe, nie instrukcji SELECT.Ponadto INSERT, UPDATE lub DELETE instrukcja, która modyfikuje tabela z dowolnym indeksu w grupa plików trybu offline nie powiedzie się.

Gdy baza danych jest w stanie RESTORING, nie będzie działać większość instrukcji ALTER DATABASE.Wyjątkiem jest ustawienie dublowanie opcje bazy danych.Baza danych może być w stanie RESTORING podczas operacji przywracanie aktywny lub operacji przywracanie bazy danych lub dziennika plikiem kończy się niepowodzeniem z powodu uszkodzenia plik kopia zapasowa.Aby uzyskać więcej informacji zobaczResponding to SQL Server Restore Errors Caused by Damaged Backups.

Pamięć podręczna plan dla wystąpienie SQL Server wyczyszczone jest przez ustawienie jednej z następujących opcji:

TRYB OFFLINE

READ_WRITE

TRYB ONLINE

MODYFIKUJ DOMYŚLNĄ grupa plików

MODIFY_NAME

MODYFIKOWANIE READ_WRITE grupa plików

SORTOWANIE

MODYFIKOWANIE READ_ONLY grupa plików

READ_ONLY

 

Czyszczenie pamięci podręcznej plan powoduje ponowną kompilację wszystkich planów późniejsze wykonanie i może spowodować nagłe, tymczasowe spadek wydajności kwerendy.Dla każdego cachestore wyczyszczone w pamięci podręcznej planu SQL Server Dziennik błędów zawiera następujący komunikat informacyjny: "SQL Server Napotkano %d zamieniono cachestore opróżniania dla cachestore '% s' (część pamięci podręcznej plan) ze względu na pewne konserwacji bazy danych lub ponownie skonfigurować operacji".Ten komunikat jest rejestrowany co pięć minut, dopóki bufor jest opróżniany w tym przedziale czas.

Zmiana sortowanie bazy danych

Przed zastosowaniem różnych sortowanie bazy danych, upewnij się, że obowiązują następujące warunki:

  1. Jesteś jedyną osobą, korzystających z bazy danych.

  2. Brak obiektu związanych ze schematem zależy od sortowanie bazy danych.

    If the following objects, which depend on the database collation, exist in the database, the ALTER DATABASEdatabase_nameCOLLATE statement will fail.SQL Server will return an error message for each object blocking the ALTER action:

    • Funkcje zdefiniowane przez użytkownika, a widoki utworzone za pomocą SCHEMABINDING.

    • Kolumny obliczane.

    • Ograniczenia CHECK.

    • Wartości tabela funkcji zwracających tabele w kolumnach znaków z ustawień sortowanie dziedziczone z domyślnym sortowaniem bazy danych.

    Informacje o zależnościach dla podmiotów innych niż związanych ze schematem jest automatycznie aktualizowany po zmianie sortowanie bazy danych.Aby uzyskać więcej informacji zobaczUnderstanding SQL Dependencies.

  3. Zmiana sortowanie bazy danych nie powoduje utworzenia duplikatów między wszystkie nazwy dla obiektów bazy danych.

    Następujące obszary nazw może spowodować uszkodzenie zmiana sortowanie bazy danych, jeśli takich samych nazwach w wyniku zmiany sortowanie:

    • Nazwy obiektów, takich jak procedury, tabela, wyzwalacza lub widoku.

    • Nazwy schematu

    • Podmioty, takie jak grupy, roli lub użytkownika.

    • Nazwy typu wartość skalarna, takie jak system i typów zdefiniowanych przez użytkownika.

    • Nazwy wykaz pełnotekstowy.

    • Nazwy kolumn lub parametrów w obiekcie.

    • Służy do indeksowania nazw w obrębie jednej tabela.

    Zduplikowane nazwy wynikające z nowego sortowanie spowoduje, że akcja zmiany, które się nie powieść, a SQL Server Zwraca komunikat o błędzie, określający obszar nazw, w którym duplikat został znaleziony.

Wyświetlanie informacji z bazy danych

Katalog widoki, funkcje systemowe i procedur przechowywana w systemie można użyć do zwracania informacji o bazach danych, plików i filegroups.Aby uzyskać więcej informacji zobaczViewing Database Metadata.

Uprawnienia

Wymaga ALTER uprawnień w bazie danych.

Przykłady

A.Zmiana nazwy bazy danych

W poniższym przykładzie zmienia nazwę AdventureWorks bazy danych Northwind.

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

B.Zmiana sortowanie bazy danych

Poniższy przykład tworzy bazę danych o nazwie testdb z SQL_Latin1_General_CP1_CI_AS sortowanie, a następnie zmienia sortowanie z testdb bazy danych COLLATE French_CI_AI.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO