CREATE DATABASE (база данных SQL Azure)

Создает новую базу данных. Для создания новой базы данных необходимо подключение к базе данных master.

Применимо для следующих объектов: База данных SQL Azure. Синтаксис, связанный с 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
[;]

Аргументы

Следующая диаграмма синтаксиса демонстрирует поддерживаемые аргументы в среде База данных SQL Azure.

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

    Business Edition

    Basic

    Standard Edition

    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 ГБ и значение EDITION не указано, то в качестве выпуска базы данных будет автоматически задан Web.

    • Если параметру MAXSIZE задано значение больше 5 ГБ и значение EDITION не указано, то в качестве выпуска базы данных будет автоматически задан Business.

    • Если параметр EDITION указан, а параметр MAXSIZE — нет, то в качестве выпуска будет использоваться значение по умолчанию. Например, если параметру EDITION задано значение Standard, а параметр MAXSIZE не задан, то параметру MAXSIZE будет автоматически присвоено значение 500 МБ.

    • Если не указаны ни MAXSIZE, ни EDITION, то параметру EDITION задается значение Web, а параметру MAXSIZE — значение 1 ГБ.

  • 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
      Имя копируемой базы данных.

База данных SQL Azure не поддерживает следующие аргументы и параметры для инструкции CREATE DATABASE.

  • Параметры, связанные с физическим расположением файла, например <filespec> и <filegroup>.

  • Параметры внешнего доступа, например DB_CHAINING и TRUSTWORTHY.

  • Присоединение базы данных.

  • Параметры Service Broker, например ENABLE_BROKER NEW_BROKER и ERROR_BROKER_CONVERSATIONS.

  • Моментальный снимок базы данных

Дополнительные сведения об аргументах и инструкции CREATE DATABASE см. в разделе CREATE DATABASE (SQL Server Transact-SQL).

Замечания

Базы данных в База данных SQL Azure используют несколько параметров по умолчанию, устанавливаемых при создании базы данных. Дополнительные сведения об этих параметрах см. в списке значений в разделе 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 см. в разделе Копирование баз данных в базе данных SQL Azure.

Примечание

Когда база данных копируется в новую базу данных, эта новая база данных создается с таким же уровнем службы и производительности, как у базы данных-источника.Например, копия базы данных Premium с уровнем производительности P1 будет создана как новая база данных Premium с уровнем производительности P1.

К аргументу AS COPY OF применяются следующие синтаксические и семантические правила.

  • Имя исходного и целевого сервера для копирования могут совпадать или отличаться. Если они совпадают, этот параметр не является обязательным, а по умолчанию будет использоваться контекст сервера текущего сеанса.

  • Необходимо указать имена исходной и целевой базы данных. Они должны быть уникальными и соответствовать правилам для идентификаторов SQL Server. Дополнительные сведения см. в разделе Идентификаторы.

  • Инструкция CREATE DATABASE должна выполняться в контексте базы данных master на сервере База данных SQL, на котором будет создана новая база данных.

  • После завершения копирования целевой базой данных необходимо управлять как независимой базой данных. Инструкции ALTER DATABASE и DROP DATABASE для новой базы данных можно выполнять независимо от базы данных-источника. Новую базу данных также можно скопировать в другую новую базу данных.

  • Целевая база данных будет недоступна во время копирования. Состояние копирования можно проверить, запросив столбец sys.dm_operations_status или столбец state из представления sys.databases либо столбец percentage_complete из представления sys.dm_database_copies на целевом сервере База данных SQL.

    Во время копирования в столбце state представления sys.databases в качестве целевого сервера База данных SQL указывается Copying. Кроме того, в столбце percentange_complete представления sys.dm_database_copies отображается процентное отношение объема данных в байтах, которые были скопированы на целевой сервер.

  • Пока выполняется копирование базы данных, база данных-источник остается доступной.

Разрешения

Создавать базу данных могут только имя входа субъекта серверного уровня (созданное в процессе провизионирования) или члены роли базы данных dbmanager. И исходный и целевой логические серверы должны принадлежать к одной и той же подписке Azure.