Freigeben über


CREATE DATABASE (Azure SQL-Datenbank)

Erstellt eine neue Datenbank. Es muss eine Verbindung mit der master-Datenbank bestehen, um eine neue Datenbank zu erstellen.

Gilt für: Azure SQL-Datenbank. Syntax zu SQL Server finden Sie unter CREATE DATABASE (SQL Server Transact-SQL).

Syntax

CREATE DATABASE database_name [ COLLATE collation_name ]
{
   (<edition_options> [, ...n]) 
}

<edition_options> ::= 
{
      MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB  
    | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' } 
    | SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' } 
}
[;]

To copy a database:
CREATE DATABASE destination_database_name
     AS COPY OF [source_server_name.] source_database_name
[;]

Argumente

Das Syntaxdiagramm veranschaulicht die in Azure SQL-Datenbank unterstützten Argumente.

  • database_name
    Der Name der neuen Datenbank. Dieser Name muss auf dem SQL-Datenbank-Server eindeutig sein und den SQL Server-Regeln für Bezeichner entsprechen. Weitere Informationen finden Sie unter Bezeichner.

  • Collation_name
    Gibt die Standardsortierung für die Datenbank an. Als Sortierungsname kann entweder der Name einer Windows-Sortierreihenfolge oder ein SQL-Sortierungsname verwendet werden. Wenn keine Angabe erfolgt, wird der Datenbank die Standardsortierung, SQL_Latin1_General_CP1_CI_AS, zugewiesen.

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

  • EDITION
    Gibt die Dienstebene der Datenbank an. Die verfügbaren Werte sind: 'web', 'business', 'basic', 'standard' und 'premium'.

    Wenn EDITION angegeben ist, MAXSIZE jedoch nicht, wird MAXSIZE auf die restriktivste, von der Edition unterstützte Größe festgelegt.

  • MAXSIZE
    Gibt die maximale Größe der Datenbank an. MAXSIZE muss für die angegebene EDITION (Dienstebene) gültig sein. Im Folgenden sind die unterstützten MAXSIZE-Werte und die Standardwerte (S) für die Dienstebenen aufgeführt.

    MAXSIZE

    Web

    Business

    Grundlegend

    Standard

    Premium

    100 MB

    500 MB

    1 GB

    √ (S)

    2 GB

    √ (S)

    5 GB

    10 GB

    √ (S)

    20 GB

    30 GB

    40 GB

    50 GB

    100 GB

    150 GB

    200 GB

    250 GB

    √ (S)

    300 GB

    400 GB

    500 GB

    √ (S)

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

    • 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 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 Web Edition und MAXSIZE auf 1 GB festgelegt.

  • SERVICE_OBJECTIVE
    Gibt die Leistungsebene an. Dienstzielbeschreibungen und weitere Informationen zu Größe, Editionen und Dienstzielkombinationen finden Sie unter Dienst- und Leistungsebenen von Azure SQL-Datenbank. Wenn der angegebene SERVICE_OBJECTIVE von der EDITION nicht unterstützt wird, erhalten Sie eine Fehlermeldung.

  • destination_database_name
    Der Name der Datenbank, die durch die Datenbankkopie erstellt wird. Dieser Name muss auf dem SQL-Datenbank-Server (Zielserver) eindeutig sein und den SQL Server-Regeln für Bezeichner entsprechen. Weitere Informationen finden Sie unter Bezeichner.

  • AS COPY OF [source_server_name.]source_database_name
    Zum Kopieren einer Datenbank auf demselben oder einem anderen SQL-Datenbank-Server.

    Hinweis

    AS COPY OF kann nicht zusammen mit anderen CREATE DATABASE-Argumenten verwendet werden.

    • source_server_name
      Der Name des SQL-Datenbank-Servers, auf dem sich die Quelldatenbank befindet. Dieser Parameter ist optional, wenn sich die Quell- und die Zieldatenbank auf demselben SQL-Datenbank-Server befinden sollen.

      Hinweis: Das AS COPY OF-Argument unterstützt nicht die vollqualifizierten eindeutigen Domänennamen. Das heißt, wenn der vollqualifizierte Domänenname des Servers serverName.database.windows.net ist, verwenden Sie serverName nur während des Datenbankkopiervorgangs.

    • source_database_name
      Der Name der zu kopierenden Datenbank.

Azure SQL-Datenbank unterstützt nicht die folgenden Argumente und Optionen, wenn die CREATE DATABASE-Anweisung verwendet wird:

  • Parameter im Zusammenhang mit der physischen Platzierung der Datei, z. B. <filespec> und <Dateigruppe>

  • Externe Zugriffsoptionen wie DB_CHAINING und TRUSTWORTHY

  • Anfügen einer Datenbank

  • Service Broker-Optionen, wie ENABLE_BROKER, NEW_BROKER und ERROR_BROKER_CONVERSATIONS

  • Datenbankmomentaufnahme

Weitere Informationen zu den Argumenten und zur CREATE DATABASE-Anweisung finden Sie unter CREATE DATABASE (SQL Server Transact-SQL).

Hinweise

Datenbanken in Azure SQL-Datenbank weisen einige Standardeinstellungen auf, die beim Erstellen der Datenbank festgelegt werden. Weitere Informationen zu diesen Standardeinstellungen finden Sie in der Liste der Werte in DATABASEPROPERTYEX (Transact-SQL).

MAXSIZE bietet die Möglichkeit, die Größe der Datenbank zu beschränken. Wenn die Größe der Datenbank den Wert von MAXSIZE erreicht, erhalten Sie den Fehlercode 40544. In diesem Fall können Sie keine Daten einfügen oder aktualisieren oder neue Objekte (wie Tabellen, gespeicherte Prozeduren. Sichten und Funktionen) erstellen. Sie können jedoch weiterhin Daten lesen und löschen, Tabellen abschneiden, Tabellen und Indizes löschen sowie Indizes neu erstellen. Anschließend können Sie MAXSIZE auf einen Wert aktualisieren, der größer als die aktuelle Datenbankgröße ist, oder Sie löschen einige Daten, um Speicherplatz freizugeben. Eine Verzögerung von bis zu fünfzehn Minuten ist möglich, bevor Sie neue Daten einfügen können.

Wichtig

Die CREATE DATABASE-Anweisung muss die einzige Anweisung in einem Transact-SQL-Batch sein.Sie müssen mit der master-Datenbank verbunden sein, wenn Sie die CREATE DATABASE-Anweisung ausführen.

Zum späteren Ändern der Größe, Edition oder der Dienstzielwerte, verwenden Sie ALTER DATABASE (Transact-SQL).

Datenbankkopien

Das Kopieren einer Datenbank mit der CREATE DATABASE-Anweisung ist ein asynchroner Vorgang. Deshalb muss nicht für die volle Dauer des Kopiervorgangs eine Verbindung mit dem SQL-Datenbank-Server bestehen. Die CREATE DATABASE-Anweisung gibt die Steuerung an den Benutzer zurück, nachdem der Eintrag in sys.databases erstellt, aber bevor der Datenbank-Kopiervorgang abgeschlossen wurde. Das heißt, die CREATE DATABASE-Anweisung wird erfolgreich ausgeführt, während der Datenbank-Kopiervorgang noch ausgeführt wird. Sie können den Kopiervorgang mit den Sichten sys.dm_database_copies und sys.databases überwachen. Die Sicht sys.dm_operations_status kann ebenfalls verwendet werden, da sie den Status von Datenbankvorgängen, wie dem Datenbank-Kopiervorgang, zurückgibt. Sobald der Kopiervorgang erfolgreich abgeschlossen wurde, ist die Zieldatenbank im Hinblick auf Transaktionen mit der Quelldatenbank konsistent. Weitere Informationen zum Kopieren von Datenbanken in SQL-Datenbank finden Sie unter Kopieren von Datenbanken in die Azure SQL-Datenbank.

Hinweis

Beim Kopieren einer Datenbank in eine neue Datenbank wird die neue Datenbank mit derselben Dienst- und Leistungsebene wie die Quelldatenbank erstellt.Beispielsweise wird die Kopie einer Premium-Datenbank mit der Leistungsebene P1 als neue Premium-Datenbank mit der Leistungsebene P1 erstellt.

Die folgende Syntax und die folgenden semantischen Regeln gelten für die Verwendung des AS COPY OF-Arguments:

  • Der Quellservername und der Servername für das Kopierziel können identisch oder unterschiedlich sein. Wenn sie identisch sind, ist dieser Parameter optional, und es wird standardmäßig der Serverkontext der aktuellen Sitzung verwendet.

  • Die Namen der Quell- und der Zieldatenbank müssen angegeben werden. Diese Namen müssen eindeutig sein und den SQL Server-Regeln für Bezeichner entsprechen. Weitere Informationen finden Sie unter Bezeichner.

  • Die CREATE DATABASE-Anweisung muss im Kontext der master-Datenbank des SQL-Datenbank-Servers ausgeführt werden, auf dem die neue Datenbank erstellt wird.

  • Nachdem der Kopiervorgang abgeschlossen wurde, muss die Zieldatenbank als unabhängige Datenbank verwaltet werden. Sie können die ALTER DATABASE-Anweisung und die DROP DATABASE-Anweisung unabhängig von der Quelldatenbank für die neue Datenbank ausführen. Außerdem können Sie die neue Datenbank in eine andere neue Datenbank kopieren.

  • Auf die Zieldatenbank kann erst zugegriffen werden, wenn der Kopiervorgang abgeschlossen ist. Sie können den Status des Kopiervorgangs überprüfen, indem Sie die sys.dm_operations_status-Spalte oder state-Spalte in der Sicht sys.databases oder die percentage_complete-Spalte in der Sicht sys.dm_database_copies auf dem SQL-Datenbank-Zielserver abfragen.

    Während des Kopiervorgangs wird in der Spalte state der Sicht sys.databases der Eintrag Copying auf dem SQL-Datenbank-Zielserver angezeigt. Außerdem zeigt die Spalte percentange_complete von sys.dm_database_copies den Prozentsatz der Bytes an, die auf den Zielserver kopiert wurden.

  • Der Zugriff auf die Quelldatenbank ist weiterhin möglich, solange der Datenbank-Kopiervorgang ausgeführt wird.

Berechtigungen

Datenbanken können nur durch den Prinzipalanmeldenamen auf Serverebene (vom Bereitstellungsprozess erstellt) oder Mitglieder der Datenbankrolle dbmanager erstellt werden. Der logische Quell- und Zielserver müssen beide demselben Azure-Abonnement angehören.