Condividi tramite


CREATE DATABASE (Database di SQL Azure)

Crea un nuovo database. È necessario essere connessi al database master per creare un nuovo database.

Si applica a: Database SQL di Azure. Per la sintassi relativa a SQL Server, vedere CREATE DATABASE (Transact-SQL di SQL Server).

Sintassi

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
[;]

Argomenti

In questo diagramma di sintassi vengono illustrati gli argomenti supportati nel Database SQL di Azure .

  • database_name
    Nome del nuovo database. Il nome deve essere univoco nel server del Database SQL ed essere conforme alle regole di SQL Server per gli identificatori. Per altre informazioni, vedere Identificatori.

  • Collation_name
    Specifica le regole di confronto predefinite per il database. È possibile usare nomi di regole di confronto di Windows o SQL. Se non viene specificato, al database vengono assegnate le regole di confronto predefinite, ovvero SQL_Latin1_General_CP1_CI_AS.

    Per altre informazioni sui nomi delle regole di confronto Windows e SQL, vedere COLLATE (Transact-SQL).

  • EDITION
    Specifica il livello del servizio del database. I valori disponibili sono: 'web', 'business', 'basic', 'standard' e 'premium'.

    Quando si specifica la proprietà EDITION ma non MAXSIZE, MAXSIZE viene impostata sulle dimensioni più limitate supportate dall'edizione.

  • MAXSIZE
    Specifica le dimensioni massime del database. MAXSIZE deve essere valido per il livello del servizio specificato in EDITION. Nella tabella seguente sono elencati i valori MAXSIZE supportati e i valori predefiniti (P) per i livelli del servizio.

    MAXSIZE

    Web

    Business

    Basic

    Standard

    Premium

    100 MB

    500 MB

    1 GB

    √ (P)

    2 GB

    √ (P)

    5 GB

    10 GB

    √ (P)

    20 GB

    30 GB

    40 GB

    50 GB

    100 GB

    150 GB

    200 GB

    250 GB

    √ (P)

    300 GB

    400 GB

    500 GB

    √ (P)

    Le seguenti regole vengono applicate agli argomenti MAXSIZE ed EDITION:

    • Il valore MAXSIZE, se specificato, deve essere un valore valido presente nella precedente tabella.

    • Se MAXSIZE è impostato su un valore inferiore a 5 GB ed EDITION viene omesso, l'edizione del database verrà automaticamente impostata su Web.

    • Se MAXSIZE è impostato su un valore maggiore di 5 GB ed EDITION viene omesso, l'edizione del database verrà automaticamente impostata su Business.

    • Se il valore di EDITION è specificato e il valore di MAXSIZE viene omesso, viene utilizzato il valore predefinito dell'edizione. Ad esempio, se EDITION è impostato su Standard e MAXSIZE non è specificato, il valore di MAXSIZE viene automaticamente impostato su 500 MB.

    • Se né MAXSIZE né EDITION vengono specificati, EDITION viene impostato su Web e MAXSIZE viene impostato su 1 GB.

  • SERVICE_OBJECTIVE
    Specifica il livello di prestazioni. Per descrizioni degli obiettivi di servizio e altre informazioni su dimensioni, edizioni e combinazioni di obiettivi di servizio, vedere Livelli di servizio e livelli di prestazioni del database SQL di Azure. Se SERVICE_OBJECTIVE non è supportato da EDITION, sarà visualizzato un errore.

  • destination_database_name
    Nome del database creato dalla copia del database. Il nome deve essere univoco nel server del Database SQL (destinazione) ed essere conforme alle regole di SQL Server per gli identificatori. Per altre informazioni, vedere Identificatori.

  • AS COPY OF [source_server_name.]source_database_name
    Per la copia di un database nello stesso server del Database SQL o in un server diverso.

    Nota

    AS COPY OF non può essere utilizzato con nessun altro argomento CREATE DATABASE.

    • source_server_name
      Nome del server del Database SQL in cui si trova il database di origine. Questo parametro è facoltativo se il database di origine e il database di destinazione devono trovarsi nello stesso server del Database SQL.

      Nota: l'argomento AS COPY OF non supporta nomi di dominio univoci completi. In altre parole, se il nome di dominio completo del server è serverName.database.windows.net, usare solo serverName durante la copia del database.

    • source_database_name
      Nome del database di cui eseguire la copia.

Il Database SQL di Azure non supporta gli argomenti e le opzioni seguenti quando si usa l'istruzione CREATE DATABASE:

  • Parametri relativi alla posizione fisica dei file, ad esempio <filespec> e <filegroup>

  • Opzioni di accesso esterno, ad esempio DB_CHAINING e TRUSTWORTHY

  • Collegamento di un database

  • Opzioni di Service Broker, ad esempio ENABLE_BROKER, NEW_BROKER e ERROR_BROKER_CONVERSATIONS

  • Snapshot del database

Per altre informazioni sugli argomenti e sull'istruzione CREATE DATABASE, vedere CREATE DATABASE (Transact-SQL di SQL Server).

Osservazioni

I database nel Database SQL di Azure presentano varie impostazioni predefinite impostate alla creazione del database. Per altre informazioni su queste impostazioni predefinite, vedere l'elenco di valori in DATABASEPROPERTYEX (Transact-SQL).

MAXSIZE consente di limitare le dimensioni del database. Se le dimensioni del database raggiungono il relativo valore MAXSIZE verrà visualizzato il codice di errore 40544. In questo caso, non è possibile inserire o aggiornare dati, né creare nuovi oggetti quali tabelle, stored procedure, viste e funzioni. È tuttavia ancora possibile leggere ed eliminare dati, troncare tabelle, eliminare tabelle e indici e ricompilare indici. È quindi possibile aggiornare MAXSIZE a un valore maggiore delle dimensioni correnti del database o eliminare alcuni dati per liberare spazio di archiviazione. Potrebbe verificarsi un ritardo di quindici minuti prima di poter inserire nuovi dati.

Importante

L'istruzione CREATE DATABASE deve essere l'unica istruzione in un batch Transact-SQL.È necessario essere connessi al database master quando si esegue l'istruzione CREATE DATABASE.

Per modificare i valori relativi a edizione oppure obiettivi di servizio in un secondo momento, usare ALTER DATABASE (Transact-SQL).

Copie di database

La copia di un database tramite l'istruzione CREATE DATABASE è un'operazione asincrona. Pertanto, una connessione al server del Database SQL non è necessaria per la durata totale del processo di copia. L'istruzione CREATE DATABASE restituirà il controllo all'utente dopo la creazione della voce in sys.databases e prima che l'operazione di copia del database venga completata. In altre parole, l'istruzione CREATE DATABASE ha esito positivo quando la copia del database è ancora in corso. È possibile monitorare il processo di copia con le viste sys.databases e sys.dm_database_copies. È possibile usare anche la vista sys.dm_operations_status poiché restituisce lo stato delle operazioni del database compresa una copia del database. Al termine del processo di copia, il database di destinazione è transazionalmente coerente con il database di origine. Per altre informazioni sulla copia di database nel Database SQL, vedere Copia di database nel database SQL di Azure.

Nota

Quando un database viene copiato in un nuovo database, il nuovo database viene creato con lo stesso livello del servizio e livello di prestazioni del database di origine.Ad esempio, la copia di un database Premium con livello di prestazioni P1 verrà creato come un nuovo database Premium con livello di prestazioni P1.

La sintassi e le regole semantiche seguenti si applicano all'utilizzo dell'argomento AS COPY OF:

  • Il nome del server di origine e il nome del server per la destinazione della copia potrebbe essere uguale o diverso. Se corrispondono, questo parametro è facoltativo e il contesto del server della sessione corrente verrà utilizzato per impostazione predefinita.

  • I nomi dei database di origine e di destinazione devono essere specificati, univoci e conformi alle regole di SQL Server per gli identificatori. Per altre informazioni, vedere Identificatori.

  • L'istruzione CREATE DATABASE deve essere eseguita nel contesto del database master del server del Database SQL in cui il nuovo database verrà creato.

  • Al termine della copia, il database di destinazione deve essere gestito come database indipendente. È possibile eseguire le istruzioni DROP DATABASE e ALTER DATABASE per il nuovo database indipendentemente dal database di origine. È inoltre possibile copiare il nuovo database in un altro nuovo database.

  • Il database di destinazione non è accessibile finché il processo di copia non è completo. È possibile controllare lo stato del processo di copia eseguendo una query per sys.dm_operations_status sulla colonna state della vista sys.databases o sulla colonna percentage_complete della vista sys.dm_database_copies nel server di destinazione Database SQL.

    Durante il processo di copia, la colonna state della vista sys.databases mostra Copying nel server del Database SQL di destinazione. Inoltre, la colonna percentange_complete di sys.dm_database_copies indica la percentuale di byte che sono stati copiati nel server di destinazione.

  • Il database di origine continuerà a essere accessibile durante la copia del database.

Autorizzazioni

Solo l'account di accesso dell'entità di livello server (creato dal processo di provisioning) o i membri del ruolo del database dbmanager possono creare database. Entrambi i server logici di origine e di destinazione devono appartenere alla stessa sottoscrizione di Azure.