(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ALTER DATABASE (Transact-SQL)

Ändert eine Datenbank bzw. die zu dieser Datenbank gehörenden Dateien und Dateigruppen. Fügt einer Datenbank Dateien und Dateigruppen hinzu oder entfernt diese, ändert die Attribute einer Datenbank oder ihrer Dateien und Dateigruppen, ändert die Datenbanksortierung und legt Datenbankoptionen fest. Datenbankmomentaufnahmen können nicht geändert werden. Verwenden Sie zum Ändern von Datenbankoptionen für die Replikation sp_replicationdboption.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Azure SQL-Datenbank (ursprüngliche Version bis aktuelle Version).

Aufgrund seiner Länge wird die ALTER DATABASE-Syntax in folgende Themen aufgeteilt:

ALTER DATABASE

Das aktuelle Thema behandelt die Syntax zum Ändern des Namens und der Sortierung einer Datenbank.

ALTER DATABASE-Optionen für Dateien und Dateigruppen

Stellt die Syntax zum Hinzufügen und Entfernen von Dateien und Dateigruppen in einer Datenbank sowie zum Ändern der Datei- und Dateigruppenattribute bereit.

ALTER DATABASE SET-Optionen

Stellt die Syntax zum Ändern der Datenbankattribute mithilfe der SET-Optionen von ALTER DATABASE bereit.

ALTER DATABASE-Datenbankspiegelung

Stellt die Syntax für die SET-Optionen von ALTER DATABASE bereit, die sich auf die Datenbankspiegelung beziehen.

ALTER DATABASE SET HADR

Stellt die Syntax der ALTER DATABASE-Optionen für AlwaysOn-Verfügbarkeitsgruppen zum Konfigurieren einer sekundären Datenbank auf einem sekundären Replikat einer AlwaysOn-Verfügbarkeitsgruppe bereit.

ALTER DATABASE-Kompatibilitätsgrad

Stellt die Syntax für die SET-Optionen von ALTER DATABASE in Bezug auf die Kompatibilitätsgrade von Datenbanken bereit.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

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

Der Name der Datenbank, die geändert werden soll.

Hinweis Hinweis

Diese Option ist in einer eigenständigen Datenbank nicht verfügbar.

CURRENT

Gilt für: SQL Server 2012 bis SQL Server 2014.

Legt fest, dass die zurzeit verwendete Datenbank geändert werden soll.

MODIFY NAME =new_database_name

Benennt die Datenbank in den als new_database_name angegebenen Namen um.

COLLATE collation_name

Gilt für: SQL Server 2008 bis SQL Server 2014.

Gibt die Sortierung für die Datenbank an. collation_name kann entweder der Name einer Windows-Sortierung oder einer SQL-Sortierung sein. Wenn keine Sortierung angegeben ist, wird der Datenbank die Sortierung der Instanz von SQL Server zugewiesen.

Weitere Informationen zu den Namen von Windows- und SQL-Sortierungen finden Sie unter COLLATE (Transact-SQL).

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

Gilt für: Azure SQL-Datenbank

Gibt die maximale Größe der Datenbank an. Die maximale Größe muss dem gültigen Wertsatz für die EDITION-Eigenschaft der Datenbank entsprechen. Eine Änderung der maximalen Datenbankgröße kann auch dazu führen, dass die EDITION-Eigenschaft der Datenbank geändert wird. In der folgenden Tabelle sind die unterstützten MAXSIZE-Werte und die Standardwerte (S) für die Dienstebenen von SQL-Datenbank aufgeführt:

MAXSIZE

Web

Business

Basic

Standard

Premium

100 MB

√ (S)

500 MB

√ (S)

1 GB

√ (S)

2 GB

5 GB

10 GB

√ (S)

√ (S)

20 GB

30 GB

40 GB

50 GB

100 GB

150 GB

200 GB

250 GB

300 GB

400 GB

500 GB

Die folgenden Regeln gelten für das MAXSIZE-Argument und das EDITION-Argument:

Es gibt zwei Arten von Datenbankservern: Eine Serverart unterstützt die Web, Business und Premium Edition und eine weitere die Basic, Standard und Premium Edition. Die Regeln können abhängig vom Server, für den der ALTER-Befehl ausgeführt wird, variieren:

Server, die die Web, Business und Premium Edition unterstützen (auch als Server der Version 1.0 bezeichnet)

  • Falls angegeben, muss der MAXSIZE-Wert einem gültigen, in der Tabelle oben aufgeführten Wert entsprechen.

  • Wenn MAXSIZE auf einen Wert unter 5 GB festgelegt und EDITION nicht angegeben ist, wird die Datenbankedition automatisch auf die Web Edition festgelegt.

  • Wenn MAXSIZE auf einen Wert über 5 GB festgelegt und EDITION nicht angegeben ist, wird die Datenbankedition automatisch auf die Business Edition festgelegt.

  • Wenn EDITION angegeben ist, MAXSIZE jedoch nicht, wird der Standardwert für die Edition verwendet. Wenn EDITION beispielsweise auf die Business Edition festgelegt und MAXSIZE nicht angegeben ist, wird MAXSIZE automatisch auf 10 GB festgelegt.

  • Wenn weder MAXSIZE noch EDITION angegeben sind, wird EDITION auf die Web Edition und MAXSIZE auf 1 GB festgelegt.

Server, die die Basic, Standard und Premium Edition unterstützen (auch als Server der Version 2.0 bezeichnet)

  • Falls angegeben, muss der MAXSIZE-Wert einem gültigen, in der Tabelle oben aufgeführten Wert entsprechen.

  • Wenn EDITION angegeben ist, MAXSIZE jedoch nicht, wird der Standardwert für die Edition verwendet. Wenn EDITION beispielsweise auf die Standard Edition festgelegt und MAXSIZE nicht angegeben ist, wird MAXSIZE automatisch auf 500 MB festgelegt.

  • Wenn weder MAXSIZE noch EDITION angegeben sind, wird EDITION auf die Basic Edition und MAXSIZE auf 100 MB festgelegt.

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

Gilt für: Azure SQL-Datenbank

Ändert die Datenbankedition. Die Dienstebenen von SQL-Datenbank können mit dem EDITION-Parameter festgelegt oder geändert werden. Wenn die MAXSIZE-Eigenschaft für die Datenbank auf einen Wert außerhalb des gültigen, von der jeweiligen Edition unterstützten Bereichs festgelegt wird, schlägt die Änderung der EDITION-Eigenschaft fehl.

Der für EDITION angegebene Wert muss von dem Datenbankserver, auf dem der ALTER-Befehl ausgeführt wird, unterstützt werden. Wenn Sie den Befehl z. B. auf einem Server ausführen, der die Web, Business und Premium Edition unterstützt, können Sie EDITION nicht auf die Web Edition ('web') festlegen.

Wichtiger Hinweis Wichtig

Die Web- und Business-Dienstebenen werden in einer künftigen Version möglicherweise nicht mehr unterstützt. Weitere Informationen finden Sie unter FAQ zu Web und Business.

<db_update_option> ::=

Gilt für: Azure SQL-Datenbank

Steuert, ob Updates für die Datenbank zugelassen sind.

{ READ_ONLY | READ_WRITE }

READ_ONLY

Benutzer können Daten aus der Datenbank lesen, aber nicht ändern.

READ_WRITE

Die Datenbank ist für Lese- und Schreibvorgänge verfügbar.

Hinweis Hinweis

Bei Verbunddatenbanken mit SQL-Datenbank ist SET { READ_ONLY | READ_WRITE } deaktiviert.

<delayed_durability_option> ::=

Gilt für: SQL Server 2014 bis SQL Server 2014.

Weitere Informationen finden Sie unter ALTER DATABASE SET-Optionen (Transact-SQL) und Steuern der Transaktionsdauerhaftigkeit.

<file_and_filegroup_options >::=

Weitere Informationen finden Sie unter ALTER DATABASE-Optionen Datei und Dateigruppe (Transact-SQL).

Verwenden Sie DROP DATABASE, um eine Datenbank zu entfernen.

Verwenden Sie DBCC SHRINKDATABASE, um die Größe einer Datenbank zu reduzieren.

Die ALTER DATABASE-Anweisung muss im Autocommitmodus (dem Standardmodus für die Transaktionsverwaltung) ausgeführt werden und ist in einer expliziten oder impliziten Transaktion nicht zugelassen.

Der Status einer Datenbankdatei (z. B. online oder offline) wird unabhängig vom Status der Datenbank verwaltet. Weitere Informationen finden Sie unter Dateistatus. Der Status der Dateien in einer Dateigruppe bestimmt die Verfügbarkeit der gesamten Dateigruppe. Damit eine Dateigruppe verfügbar ist, müssen alle Dateien in der Dateigruppe online sein. Ist eine Dateigruppe offline, verursacht jeder Versuch, über eine SQL-Anweisung auf die Dateigruppe zuzugreifen, einen Fehler. Wenn Sie Abfragepläne für SELECT-Anweisungen erstellen, vermeidet der Abfrageoptimierer nicht gruppierte Indizes und indizierte Sichten, die sich in Offlinedateigruppen befinden. Dadurch wird ein erfolgreiches Ausführen der Anweisungen ermöglicht. Enthält die Offlinedateigruppe jedoch den Heap oder gruppierten Index der Zieltabelle, schlagen die SELECT-Anweisungen fehl. Auch alle INSERT-, UPDATE- oder DELETE-Anweisungen, durch die eine Tabelle mit einem Index in einer Offlinedateigruppe geändert wird, schlagen fehl.

Wenn eine Datenbank sich im Status RESTORING befindet, erzeugen die meisten ALTER DATABASE-Anweisungen einen Fehler. Eine Ausnahme bildet das Festlegen von Datenbank-Spiegelungsoptionen. Eine Datenbank kann den Status RESTORING aufweisen, während ein Wiederherstellungsvorgang aktiv ist oder wenn ein Wiederherstellungsvorgang einer Datenbank oder Protokolldatei aufgrund einer beschädigten Sicherungsdatei fehlschlägt.

Der Plancache für die Instanz von SQL Server wird gelöscht, indem eine der folgenden Optionen festgelegt wird:

OFFLINE

READ_WRITE

ONLINE

MODIFY FILEGROUP DEFAULT

MODIFY_NAME

MODIFY FILEGROUP READ_WRITE

COLLATE

MODIFY FILEGROUP READ_ONLY

READ_ONLY

PAGE_VERIFY

Durch das Löschen des Plancaches wird eine Neukompilierung aller nachfolgenden Ausführungspläne verursacht, wodurch sich die Abfrageleistung vorübergehend verringern kann. Für jeden gelöschten Cachespeicher im Plancache enthält das SQL Server-Fehlerprotokoll folgende Informationsmeldung: "SQL Server hat für den %s-Cachespeicher (Bestandteil des Plancache) %d Leerungen des Cachespeichers gefunden, die von Datenbankwartungs- oder Neukonfigurierungsvorgängen ausgelöst wurden". Diese Meldung wird alle fünf Minuten protokolliert, solange der Cache innerhalb dieses Zeitintervalls geleert wird.

Der Prozedurcache wird in den folgenden Situationen ebenfalls geleert:

  • Die AUTO_CLOSE-Datenbankoption ist für eine Datenbank auf ON festgelegt. Wenn die Datenbank von keiner Benutzerverbindung verwendet wird bzw. keine Benutzerverbindung darauf verweist, versucht der Hintergrundtask, die Datenbank automatisch zu schließen und herunterzufahren.

  • Sie führen mehrere Abfragen für eine Datenbank aus, die über Standardoptionen verfügt. Anschließend wird die Datenbank gelöscht.

  • Eine Datenbank-Momentaufnahme für eine Quelldatenbank wird gelöscht.

  • Sie erstellen das Transaktionsprotokoll für eine Datenbank erfolgreich neu.

  • Sie stellen eine Datenbanksicherung wieder her.

  • Sie trennen eine Datenbank.

Ändern der Datenbanksortierung

Bevor Sie auf eine Datenbank eine andere Sortierung anwenden, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:

  1. Die Datenbank wird derzeit nur von Ihnen verwendet.

  2. Von der Sortierung der Datenbank hängt kein schemagebundenes Objekt ab.

    Wenn die folgenden Objekte, die von der Datenbanksortierung abhängen, in der Datenbank vorhanden sind, schlägt die ALTER DATABASEdatabase_nameCOLLATE-Anweisung fehl. SQL Server gibt eine Fehlermeldung für jedes Objekt zurück, das die ALTER-Aktion blockiert:

    • Benutzerdefinierte Funktionen und Sichten, die mit SCHEMABINDING erstellt wurden.

    • Berechnete Spalten.

    • CHECK-Einschränkungen.

    • Tabellenwertfunktionen, die Tabellen mit Zeichenspalten zurückgeben, deren Sortierungen von der Standardsortierung der Datenbank geerbt wurden.

    Abhängigkeitsinformationen für nicht schemagebundene Entitäten werden automatisch aktualisiert, wenn die Sortierung der Datenbank geändert wird.

Durch das Ändern der Sortierung der Datenbank werden keine Duplikate von Systemnamen für die Datenbankobjekte erstellt. Wenn durch die geänderte Sortierung doppelte Namen entstehen, verursachen die folgenden Namespaces möglicherweise einen Fehler bei der Änderung der Datenbanksortierung:

  • Objektnamen wie z. B. der Name einer Prozedur, einer Tabelle, eines Triggers oder einer Sicht

  • Schemanamen

  • Prinzipale wie z. B. eine Gruppe, eine Rolle oder ein Benutzer

  • Namen skalarer Typen wie z. B. der Name eines system- oder benutzerdefinierten Typs

  • Namen von Volltextkatalogen

  • Spalten- oder Parameternamen in einem Objekt

  • Indexnamen in einer Tabelle

Durch doppelte Namen, die durch die neue Sortierung entstanden sind, schlägt die ALTER-Aktion fehl. SQL Server gibt eine Fehlermeldung zurück, in der der Namespace angegeben wird, in dem das Duplikat gefunden wurde.

Anzeigen von Datenbankinformationen

Sie können Katalogsichten, Systemfunktionen und gespeicherte Systemprozeduren verwenden, um Informationen zu Datenbanken, Dateien und Dateigruppen zurückzugeben.

SQL Server

Erfordert die ALTER-Berechtigung für die Datenbank.

Azure SQL-Datenbank

Datenbanken können nur durch den Prinzipalanmeldenamen auf Serverebene (vom Bereitstellungsprozess erstellt) oder Mitglieder der Datenbankrolle dbmanager geändert werden.

Sicherheitshinweis Sicherheitshinweis

Der Datenbankbesitzer kann die Datenbank nur ändern, wenn er Mitglied der Rolle dbmanager ist.

A.Ändern des Namens einer Datenbank

Im folgenden Beispiel wird der Name der Datenbank AdventureWorks2012 in Northwind geändert.

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

B. Ändern der Datenbanksortierung

Im folgenden Beispiel wird die Datenbank testdb mit der SQL_Latin1_General_CP1_CI_AS-Sortierung erstellt. Danach wird die Sortierung der Datenbank testdb in COLLATE French_CI_AI geändert.

Gilt für: SQL Server 2008 bis 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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft