共用方式為


CREATE DATABASE (Azure SQL Database)

建立新資料庫。 您必須連接到 master 資料庫才能建立新的資料庫。

適用於:Azure SQL Database. 如需與 SQL Server 有關的語法,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。

語法

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

引數

此語法圖表示範 Azure SQL Database 中支援的引數。

  • database_name
    新資料庫的名稱。 這個名稱在 SQL 資料庫 伺服器上必須是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。

  • Collation_name
    指定資料庫的預設定序。 定序名稱可以是 Windows 定序名稱或 SQL 定序名稱。 如果沒有指定,資料庫會擁有指派的預設定序,即 SQL_Latin1_General_CP1_CI_AS。

    如需有關 Windows 和 SQL 定序名稱的詳細資訊,請參閱<COLLATE (Transact-SQL)>。

  • EDITION
    指定資料庫的服務層。 可用的值為:'web'、'business'、'basic'、'standard' 和 'premium'。

    當指定 EDITION 但是未指定 MAXSIZE 時,MAXSIZE 將會設定為版本所支援的最高限制大小。

  • MAXSIZE
    指定資料庫的大小上限。 MAXSIZE 對於指定的 EDITION (服務層) 而言必須有效。下表列出服務層支援的 MAXSIZE 值與預設值 (D):

    MAXSIZE

    Web

    Business

    Basic

    Standard

    Premium

    100 MB

    500 MB

    1 GB

    √ (D)

    2 GB

    √ (D)

    5 GB

    10 GB

    √ (D)

    20 GB

    30 GB

    40 GB

    50 GB

    100 GB

    150 GB

    200 GB

    250 GB

    √ (D)

    300 GB

    400 GB

    500 GB

    √ (D)

    以下規則會套用到 MAXSIZE 和 EDITION 引數:

    • 如果指定 MAXSIZE 值的話,它必須是上表所示的有效值。

    • 如果 MAXSIZE 設定為小於 5 GB 的值而且未指定 EDITION,則資料庫版本將會自動設定為 Web Edition。

    • 如果 MAXSIZE 設定為大於 5 GB 的值而且未指定 EDITION,則資料庫版本將會自動設定為 Business Edition。

    • 如果指定了 EDITION 但是未指定 MAXSIZE,就會使用版本的預設值。 例如,如果 EDITION 設定為 Standard 而且未指定 MAXSIZE,則 MAXSIZE 會自動設定為 500 MB。

    • 如果 MAXSIZE 和 EDITION 皆未指定,則 EDITION 會設定為 Web 而 MAXSIZE 則設定為 1 GB。

  • SERVICE_OBJECTIVE
    指定效能等級。 如需服務目標描述和有關大小、版本及服務目標組合的詳細資訊,請參閱 Azure SQL Database 服務層和效能層級。 如果 EDITION 不支援指定的 SERVICE_OBJECTIVE,將會收到錯誤。

  • destination_database_name
    資料庫複製建立之資料庫的名稱。 這個名稱在 (目的地) SQL 資料庫 伺服器上必須是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。

  • AS COPY OF [source_server_name.]source_database_name
    用於將資料庫複製到相同或不同的 SQL 資料庫 伺服器上。

    注意

    AS COPY OF 不可搭配任何其他 CREATE DATABASE 引數使用。

    • source_server_name
      來源資料庫所在的 SQL 資料庫 伺服器名稱。 當來源資料庫和目的地資料庫位於相同的 SQL 資料庫 伺服器上時,這個參數是選擇性的。

      附註:AS COPY OF 引數不支援唯一的完整網域名稱。 換句話說,如果您伺服器的完整網域名稱為 serverName.database.windows.net,則在資料庫複製期間僅可使用 serverName。

    • source_database_name
      要複製的資料庫名稱。

使用 CREATE DATABASE 陳述式時,Azure SQL Database 不支援下列引數和選項:

  • 與檔案實際位置相關聯的參數,例如 <filespec> 和 <filegroup>

  • 外部存取選項,例如 DB_CHAINING 和 TRUSTWORTHY

  • 附加資料庫

  • Service Broker 選項,例如 ENABLE_BROKER、NEW_BROKER 和 ERROR_BROKER_CONVERSATIONS

  • 資料庫快照集

如需有關引數和 CREATE DATABASE 陳述式的詳細資訊,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。

備註

Azure SQL Database 中的資料庫有數個預設設定,這些設定是在建立資料庫時所設定。 如需有關這些預設設定的詳細資訊,請參閱<DATABASEPROPERTYEX (Transact-SQL)>中的值清單。

MAXSIZE 提供了限制資料庫大小的功能。 如果資料庫的大小達到其 MAXSIZE,您將收到錯誤碼 40544。 發生這種情況時,您就無法插入或更新資料,或是建立新物件 (例如資料表、預存程序、檢視和函數)。 不過,您仍然可以讀取和刪除資料、截斷資料表、卸除資料表和索引,以及重建索引。 然後您可以將 MAXSIZE 升級為大於目前資料庫大小的值,或是刪除某些資料以釋出儲存空間。 在您能夠插入新資料之前,最長可能會有十五分鐘的延遲。

重要事項重要事項

CREATE DATABASE 陳述式必須是 Transact-SQL 批次中唯一的陳述式。執行 CREATE DATABASE 陳述式時,您必須連接到 master 資料庫。

若要在稍後變更大小、版本或服務目標值,請使用<ALTER DATABASE (Transact-SQL)>。

資料庫複本

使用 CREATE DATABASE 陳述式複製資料庫是一項非同步作業。 因此,整個複製程序期間都不需要連接至 SQL 資料庫 伺服器。 CREATE DATABASE 陳述式會在 sys.databases 中建立項目之後但是在資料庫複製作業完成之前,將控制權交還給使用者。 換句話說,CREATE DATABASE 陳述式會在資料庫複製仍進行時成功傳回。 您可以使用 sys.dm_database_copies 和 sys.databases 檢視監視複製程序。 sys.dm_operations_status 檢視表也可以使用,因為它會傳回資料庫作業的狀態,包括資料庫複製。 當複製程序順利完成時,目的地資料庫的交易會與來源資料庫一致。 如需複製 SQL 資料庫 中資料庫的詳細資訊,請參閱在 Azure SQL Database 中複製資料庫

注意

當資料庫複製到新的資料庫時,將會使用與來源資料庫相同的服務層和效能層級建立新的資料庫。例如,P1 效能層級的 Premium 資料庫複本將會建立為 P1 效能層級的新 Premium 資料庫。

下列語法和語意規則適用於使用 AS COPY OF 引數的情況:

  • 來源伺服器名稱和複製目標的伺服器名稱可以相同,也可以不同。 兩個名稱相同時,這個參數會是選擇性的,而且預設將使用目前工作階段的伺服器內容。

  • 來源和目的地資料庫名稱必須加以指定、是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。

  • CREATE DATABASE 陳述式必須在將要建立新資料庫之 SQL 資料庫 伺服器的 master 資料庫內容中執行。

  • 複製完成後,目的地資料庫必須做為獨立資料庫管理。 您可以在與來源資料庫不相關的情況下,單獨對新資料庫執行 ALTER DATABASE 和 DROP DATABASE 陳述式。 您也可以將新資料庫複製到另一個新資料庫。

  • 複製程序完成之前,無法存取目的地資料庫。 您可以藉由查詢目的地 SQL 資料庫 伺服器上 sys.databases 檢視表中的 sys.dm_operations_status 或 state 資料行或 sys.dm_database_copies 檢視表中的 percentage_complete 資料行,查看複製程序的狀態。

    在複製程序期間,sys.databases 檢視的 state 資料行會在目的地 SQL 資料庫 伺服器上顯示 Copying。 此外,sys.dm_database_copies 的 percentange_complete 資料行會顯示目的地伺服器上已複製的位元組百分比。

  • 資料庫複製正在進行時,可能會繼續存取來源資料庫。

Permissions

只有伺服器層級主體登入 (透過佈建程序所建立) 或 dbmanager 資料庫角色的成員才能建立資料庫。 來源和目標邏輯伺服器都必須屬於相同的 Azure 訂閱。