次の方法で共有


CREATE DATABASE (Azure SQL データベース)

新しいデータベースを作成します。 新しいデータベースを作成するには、master データベースに接続している必要があります。

適用対象:Azure AQL データベース. 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 AQL データベースで使用できる引数を示しています。

  • 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

    ビジネス

    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 に設定されます。

    • MAXSIZE が 5 GB より大きい値に設定されていて、EDITION が指定されていない場合、データベースのエディションは自動的に Business に設定されます。

    • EDITION が指定され、MAXSIZE が指定されていない場合は、エディションの既定値が使用されます。 たとえば、EDITION が Standard に設定されていて、MAXSIZE が指定されていない場合、MAXSIZE は自動的に 500 MB に設定されます。

    • MAXSIZE も EDITION も指定されていない場合、EDITION は Web に設定され、MAXSIZE は 1 GB に設定されます。

  • SERVICE_OBJECTIVE
    パフォーマンス レベルを指定します。 サービス目標に関する説明およびサイズ、エディション、サービス目標の組み合わせの詳細については、「Azure SQL データベースのサービス階層とパフォーマンス レベル」を参照してください。 指定した SERVICE_OBJECTIVE が EDITION によってサポートされていない場合は、エラーが返されます。

  • 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
      コピーするデータベースの名前。

Azure AQL データベース で CREATE DATABASE ステートメントを使用する場合、次の引数およびオプションはサポートされません。

  • ファイルの物理的な配置に関連するパラメーター (<filespec>、<filegroup> など)

  • 外部アクセス オプション (DB_CHAINING、TRUSTWORTHY など)

  • データベースをアタッチする

  • Service Broker オプション (ENABLE_BROKER、NEW_BROKER、ERROR_BROKER_CONVERSATIONS など)

  • データベース スナップショット

引数と CREATE DATABASE ステートメントの詳細については、「CREATE DATABASE (SQL Server Transact-SQL)」を参照してください。

説明

Azure AQL データベース 内のデータベースについては、データベースの作成時に設定される既定の設定がいくつかあります。 これらの既定の設定の詳細については、「DATABASEPROPERTYEX (Transact-SQL)」の値のリストを参照してください。

MAXSIZE を使用して、データベースのサイズを制限できます。 データベースのサイズが MAXSIZE に達すると、エラー コード 40544 が返されます。 このエラーが発生すると、データを挿入または更新したり、新しいオブジェクト (テーブル、ストアド プロシージャ、ビュー、関数など) を作成したりできなくなります。 データの読み取りと削除、テーブルの切り捨て、テーブルとインデックスの削除、およびインデックスの再構築は引き続き可能です。 これを解決するには、MAXSIZE を現在のデータベースのサイズより大きい値にするか、一部のデータを削除してストレージ領域を解放します。 新しいデータを挿入できるようになるまでに、最大で 15 分の遅延が生じる可能性があります。

重要

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 データベースでのデータベースのコピー」を参照してください。

注意

データベースが新しいデータベースにコピーされると、新しいデータベースは、ソース データベースと同じサービス層およびパフォーマンス レベルで作成されます。たとえば、P1 パフォーマンス レベルの Premium データベースのコピーは、P1 パフォーマンス レベルの新しい Premium データベースとして作成されます。

AS COPY OF 引数を使用する際、次の構文および意味上の規則が適用されます。

  • コピー先のサーバー名としてコピー元のサーバー名と同じ名前を使用することも別の名前を使用することもできます。 同じである場合、このパラメーターは省略可能であり、現在のセッションのサーバー コンテキストが既定で使用されます。

  • ソース データベースと対象データベースの名前を指定する必要があります。これらの名前は、一意であり、識別子に関する SQL Server の規則に準拠している必要があります。 詳細については、「データベース識別子」を参照してください。

  • CREATE DATABASE ステートメントは、新しいデータベースが作成される SQL データベース サーバーの master データベースのコンテキスト内で実行される必要があります。

  • コピーの完了後、対象データベースは個別のデータベースとして管理される必要があります。 ALTER DATABASE ステートメントと DROP DATABASE ステートメントは、ソース データベースに影響を与えることなく、新しいデータベースに対して実行できます。 新しいデータベースを別の新しいデータベースにコピーすることもできます。

  • コピー プロセスが完了するまで対象データベースにアクセスすることはできません。 コピー先の SQL データベース サーバーで、sys.dm_operations_status を照会するか、sys.databases ビューの state 列または sys.dm_database_copies ビューの percentage_complete 列を照会することによって、コピー プロセスの状態を確認できます。

    コピー プロセス中、sys.databases ビューの state 列で、コピー先の SQL データベース サーバーの状態が Copying になります。 さらに、sys.dm_database_copies の percentange_complete 列には、コピー先のサーバーにコピーされたバイトの割合 (%) が表示されます。

  • データベース コピーが進行中でも、ソース データベースには引き続きアクセスできます。

権限

データベースを作成できるのは、(準備プロセスによって作成される) サーバーレベルのプリンシパルのログイン、または dbmanager データベース ロールのメンバーだけです。 ソースとターゲットの論理サーバーは、どちらも同じ Azure サブスクリプションに属している必要があります。