CREATE DATABASE

Создает новую базу данных.

Щелкните одну из следующих вкладок, чтобы изучить синтаксис, аргументы, примечания, разрешения и примеры для используемой вам версии SQL.

Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.

Выберите продукт

В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.

* SQL Server *  

 

SQL Server

Обзор

В SQL Server эта инструкция создает базу данных, используемые для нее файлы и их файловые группы. Также она позволяет создать моментальный снимок базы данных или подключить файлы для создания базы данных из отсоединенных файлов другой базы данных.

Синтаксис

Создание базы данных

CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
      [ PRIMARY ] <filespec> [ ,...n ]
      [ , <filegroup> [ ,...n ] ]
      [ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

<option> ::=
{
      FILESTREAM ( <filestream_option> [,...n ] )
    | DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
    | DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
    | NESTED_TRIGGERS = { OFF | ON }
    | TRANSFORM_NOISE_WORDS = { OFF | ON}
    | TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
    | DB_CHAINING { OFF | ON }
    | TRUSTWORTHY { OFF | ON }
    | PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='<Filepath to folder on DAX formatted volume>' )
}

<filestream_option> ::=
{
      NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    | DIRECTORY_NAME = 'directory_name'
}

<filespec> ::=
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}

<filegroup> ::=
{
FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
    <filespec> [ ,...n ]
}

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

CREATE DATABASE database_name
    ON <filespec> [ ,...n ]
    FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
        | ATTACH_REBUILD_LOG }
[;]

<attach_database_option> ::=
{
      <service_broker_option>
    | RESTRICTED_USER
    | FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

Создание моментального снимка базы данных

CREATE DATABASE database_snapshot_name
    ON
    (
        NAME = logical_file_name,
        FILENAME = 'os_file_name'
    ) [ ,...n ]
    AS SNAPSHOT OF
[;]

Аргументы

database_name — имя новой базы данных. Имена баз данных должны быть уникальны внутри экземпляра SQL Server и должны соответствовать правилам для идентификаторов.

Аргумент database_name может иметь максимальную длину 128 символов, если для файла журнала не указано логическое имя. Если логическое имя файла не указано, то SQL Server формирует для журнала имена logical_file_name и os_file_name путем добавления суффикса к database_name. Это ограничивает длину аргумента database_name 123 символами, чтобы формируемое логическое имя файла было не длиннее 128 символов.

Если имя файла данных не указано, SQL Server использует аргумент database_name как logical_file_name и os_file_name. Путь по умолчанию берется из реестра. Путь по умолчанию можно изменить на вкладке Свойства сервера (страница "Параметры базы данных")Среда Management Studio в среде . Изменение пути по умолчанию требует перезапуска SQL Server.

CONTAINMENT = { NONE | PARTIAL }

Область применения: SQL Server 2012 (11.x) и более поздних версий

Указывает состояние включения базы данных. NONE = неавтономная база данных. PARTIAL = частично автономная база данных.

ON — указывает, что дисковые файлы, используемые для хранения разделов данных в базе данных (файлы данных), определяются явно. Параметр ON необходимо применять, если за ним следует список элементов <filespec> с разделителями-запятыми, которые определяют файлы данных первичной файловой группы. За списком файлов в первичной файловой группе может следовать необязательный список элементов <filegroup> с разделителями-запятыми, которые определяют файловые группы пользователей и принадлежащие им файлы.

PRIMARY — указывает, что связанный список <filespec> определяет первичный файл. Первый файл, указанный в элементе <filespec> в первичной файловой группе, становится первичным файлом. В базе данных может быть только один первичный файл. Дополнительные сведения см. в статье Файлы и группы файлов базы данных.

Если параметр PRIMARY не указан, то первый файл списка в инструкции CREATE DATABASE становится первичным файлом.

LOG ON — указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть файлы журналов, определяются явно. За параметром LOG ON следует список элементов <filespec> с разделителями-запятыми, которые определяют файлы журналов. Если параметр LOG ON не указан, автоматически создается один файл журнала, размер которого определяется большей из следующих двух величин: 512 КБ или 25 процентов от суммы размеров всех файлов данных в базе данных. Этот файл помещается в местоположение для журнала по умолчанию. См. дополнительные сведения об этом расположении.

Параметр LOG ON не может указываться для моментального снимка базы данных.

COLLATE collation_name — определяет параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметр не указан, базе данных назначаются параметры сортировки по умолчанию для экземпляра SQL Server. Имя параметров сортировки не может указываться для моментального снимка базы данных.

Имя параметров сортировки не может указываться с предложениями FOR ATTACH и FOR ATTACH_REBUILD_LOG. Дополнительные сведения о способах изменения параметров сортировки подсоединенной базы данных см. на веб-сайте корпорации Майкрософт.

Список имен параметров сортировки Windows и SQL см. в статье Параметры сортировки.

Примечание

Сортировка в автономных базах данных отличается от неавтономных баз данных. Дополнительные сведения см. в разделе Параметры сортировки автономной базы данных.

WITH <option> <filestream_option>

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL } Применимо к: SQL Server 2012 (11.x) и выше.

Указывает уровень нетранзакционного доступа FILESTREAM к базе данных.

Значение Описание
OFF Нетранзакционный доступ отключен.
READONLY Данные FILESTREAM в этой базе данных могут быть считаны нетранзакционными процессами.
FULL Полный нетранзакционный доступ к FILESTREAM FileTable включен.

DIRECTORY_NAME = <directory_name> применимо к SQL Server 2012 (11.x) и более новым версиям

Имя каталога, совместимое с Windows. Это имя должно быть уникально среди всех имен Database_Directory в экземпляре SQL Server. Проверка уникальности выполняется с учетом регистра, независимо от параметров сортировки SQL Server. Этот параметр необходимо назначить до создания FileTable в этой базе данных.

Следующие параметры разрешаются, только если параметр CONTAINMENT установлен в состояние PARTIAL. Если параметр CONTAINMENT установлен в состояние NONE, возникнут ошибки.

  • DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <language name> | <language alias>

    Область применения: SQL Server 2012 (11.x) и более поздних версий

    Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера full-text language по умолчанию.

  • DEFAULT_LANGUAGE = <lcid> | <language name> | <language alias>

    Область применения: SQL Server 2012 (11.x) и более поздних версий

    Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера language по умолчанию.

  • NESTED_TRIGGERS = { OFF | ON}

    Область применения: SQL Server 2012 (11.x) и более поздних версий

    Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера nested triggers.

  • TRANSFORM_NOISE_WORDS = { OFF | ON}

    Область применения: SQL Server 2012 (11.x) и более поздних версий

    Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера transform noise words.

  • TWO_DIGIT_YEAR_CUTOFF = { 2049 | <any year between 1753 and 9999> }

    Четыре цифры, обозначающие год. Значение по умолчанию — 2049. Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера two digit year cutoff.

  • DB_CHAINING { OFF | ON }

    Если указано значение ON, то база данных может быть источником или целевой базой данных в межбазовой цепочке владения.

    Если задано значение OFF, то база данных не может участвовать в межбазовых цепочках владения. Значение по умолчанию — OFF.

    Важно!

    Экземпляр SQL Server распознает эту настройку, если параметр сервера cross db ownership chaining имеет значение 0 (OFF). Если параметр cross db ownership chaining имеет значение 1 (ON), то все пользовательские базы данных могут участвовать в межбазовых цепочках владения, вне зависимости от значения этого параметра. Этот параметр задается с помощью процедуры sp_configure.

    Для задания этого параметра необходимо членство в предопределенной роли сервера sysadmin. Параметр DB_CHAINING не может быть задан для системных баз данных: master, model, tempdb.

  • TRUSTWORTHY { OFF | ON }

    Если задано значение ON, то модули базы данных (например, представления, определяемые пользователем функции и хранимые процедуры), в которых используется контекст олицетворения, могут обращаться к ресурсам, расположенным за пределами базы данных.

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

    Параметр TRUSTWORTHY устанавливается в значение OFF при каждом присоединении базы данных.

    По умолчанию для всех системных баз данных, кроме msdb, параметр TRUSTWORTHY установлен в значение OFF. Оно не изменяется для баз данных model и tempdb. Рекомендуется никогда не устанавливать параметр TRUSTWORTHY в состояние ON для базы данных master.

  • PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' )

    Если указан этот параметр, буфер журнала транзакций создается в томе на дисковом устройстве с поддержкой памяти класса хранилища (энергонезависимое хранилище NVDIMM-N), которое также называется постоянным буфером журнала. Дополнительные сведения см. в записи блога о сокращении задержки фиксации транзакций с помощью памяти класса хранилища. Применимо к: SQL Server 2017 (14.x); и более поздним версиям.

FOR ATTACH [ WITH < attach_database_option > ] — указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Должна существовать запись <filespec>, которая указывает первичный файл. Кроме этого элемента, необходимы только записи <filespec>, предназначенные для файлов, пути которых отличны от путей, существовавших при создании или последнем присоединении базы данных. Для таких файлов должна быть определена запись <filespec>.

Для параметра FOR ATTACH необходимо выполнение следующих условий.

  • Должны быть доступны все файлы данных (MDF и NDF).
  • Если существует несколько файлов журналов, все они должны быть доступны.

Если база данных, доступная для чтения и записи, располагает единственным файлом журнала, который недоступен в текущий момент, а также если база данных была закрыта в отсутствие пользователей или открытых транзакций перед операцией присоединения, то параметр FOR ATTACH автоматически перестраивает файл журнала и обновляет первичный файл. Однако журнал невозможно перестроить в базе данных, доступной только для чтения, так как нельзя обновить первичный файл. Поэтому, если присоединяется база данных только для чтения, журнал которой недоступен, необходимо указать в предложении FOR ATTACH файлы журнала или файлы.

Примечание

База данных, созданная в более поздней версии SQL Server, не может быть присоединена в ранних версиях.

В SQL Server любые полнотекстовые файлы, являющиеся частью присоединяемой базы данных, будут присоединены вместе с базой данных. Чтобы задать новый путь полнотекстового каталога, следует указать новое местоположение без имени полнотекстового файла операционной системы. Дополнительные сведения см. в разделе "Примеры".

При присоединении базы данных, содержащей параметр FILESTREAM "Directory name", к экземпляру SQL ServerSQL Server должен проверить уникальность имени Database_Directory. Если это не так, операция присоединения завершится неудачей с ошибкой «Имя FILESTREAM Database_Directory <name> не уникально в этом экземпляре SQL Server». Чтобы избежать этой ошибки, необходимо передать этой операции необязательный параметр directory_name.

Параметр FOR ATTACH не может указываться для моментального снимка базы данных.

В предложении FOR ATTACH может указываться параметр RESTRICTED_USER. Предложение RESTRICTED_USER позволяет подключаться к базе данных только членам предопределенных ролей базы данных db_owner и dbcreator и предопределенной роли сервера sysadmin, количество соединений при этом не ограничивается. Пользователям, не соответствующим этому условию, подключение не разрешается.

Если в базе данных используется компонент Компонент Service Broker, в предложении FOR ATTACH следует использовать WITH <service_broker_option>.

<service_broker_option> Управляет доставкой сообщений компонента Компонент Service Broker и идентификатором компонента Компонент Service Broker для базы данных. Параметры Компонент Service Broker могут указываться только при использовании предложения FOR ATTACH.

ENABLE_BROKER — определяет, что для указанной базы данных включен компонент Компонент Service Broker. Это означает, что происходит запуск доставки сообщений и параметр is_broker_enabled устанавливается в значение true в представлении каталога sys.databases. В базе данных сохраняется существующий идентификатор компонента Компонент Service Broker.

NEW_BROKER — создает новое значение service_broker_guid в представлении каталога sys.databases и восстановленной базе данных, после чего завершает все конечные точки диалога, очищая их. Посредник включен, но сообщения удаленным конечным точкам диалога не отправляются. Все маршруты, ссылающиеся на старый идентификатор компонента Компонент Service Broker, необходимо создать повторно с новым идентификатором.

ERROR_BROKER_CONVERSATIONS — завершает все диалоги, находящиеся в состоянии ошибки, которые были присоединены к базе данных или восстановлены. Посредник отключается до завершения этой операции, после чего вновь включается. В базе данных сохраняется существующий идентификатор компонента Компонент Service Broker.

При подключении реплицируемой базы данных, которая была скопирована, а не отсоединена, необходимо учитывать следующее.

  • При подключении базы данных к тому же экземпляру и версии сервера, к которому была подключена оригинальная база данных, не требуется никаких дополнительных действий.
  • При подключении базы данных к обновленной версии того же экземпляра сервера необходимо запустить процедуру sp_vupgrade_replication для обновления репликации по завершении операции подключения.
  • При подключении базы данных к другому экземпляру сервера, независимо от его версии, необходимо запустить процедуру sp_removedbreplication для удаления репликации по завершении операции подключения.

Примечание

Присоединение работает с форматом хранения vardecimal, но при этом компонент Компонент SQL Server Database Engine должен быть обновлен по крайней мере до версии SQL Server 2005 (9.x) с пакетом обновления 2 (SP2). Присоединение баз данных, использующих формат хранения vardecimal версий ранее SQL Server, невозможно. Дополнительные сведения о формате хранения vardecimal см. в разделе Сжатие данных.

При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. См. дополнительные сведения о повторном создании главного ключа базы данных. Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей. См. дополнительные сведения об обновлении базы данных с помощью присоединения.

Важно!

Рекомендуется не присоединять базы данных из неизвестных или сомнительных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.

Примечание

Параметры TRUSTWORTHY и DB_CHAINING не оказывают влияния при присоединении базы данных.

FOR ATTACH_REBUILD_LOG — указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Этот параметр применяется только в базах данных, доступных для чтения и записи. Должна существовать запись <filespec> , указывающая первичный файл. Если один или несколько файлов журналов транзакций отсутствуют, то файл журнала перестраивается. Параметр ATTACH_REBUILD_LOG автоматически создает новый файл журнала с размером 1 МБ. Этот файл помещается в местоположение для журнала по умолчанию. См. дополнительные сведения об этом расположении.

Примечание

Если файлы журналов доступны, компонент Компонент Database Engine использует их, не перестраивая файлы журнала.

Для параметра FOR ATTACH_REBUILD_LOG необходимо следующее:

  • Чистое завершение работы базы данных.
  • Должны быть доступны все файлы данных (MDF и NDF).

Важно!

Эта операция разрывает цепочку резервных копий журнала. Рекомендуется выполнить полное резервное копирование базы данных после завершения операции. Дополнительные сведения см. в описании BACKUP.

Как правило, параметр FOR ATTACH_REBUILD_LOG используется при копировании базы данных, доступной для чтения и записи и обладающей большим журналом, на другой сервер, где копия будет использоваться преимущественно или исключительно для операций чтения. Поэтому для журнала требуется меньше места, чем в случае исходной базы данных.

Параметр FOR ATTACH_REBUILD_LOG не может указываться для моментального снимка базы данных.

См. дополнительные сведения о присоединении и отсоединении баз данных.

<filespec> Управляет свойствами файла.

NAME logical_file_name — задает логическое имя файла. Параметр NAME требуется при указании параметра FILENAME во всех случаях, кроме указания одного из предложений FOR ATTACH. Файловая группа FILESTREAM не может иметь имя PRIMARY.

logical_file_name — логическое имя, используемое в SQL Server при обращении к файлу. Аргумент logical_file_name должен быть уникальным в базе данных и соответствовать правилам для идентификаторов. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями.

FILENAME { ' os_file_name ' | ' filestream_path ' } — задает имя файла (физического) в операционной системе.

' os_file_name '  — путь и имя файла, используемые операционной системой при создании файла. Файл должен находиться на одном из следующих устройств: на локальном сервере, где установлен SQL Server, в сети хранения данных [SAN] или в сети на основе iSCSI. Указанный путь должен существовать до выполнения инструкции CREATE DATABASE. Дополнительные сведения см. в подразделе "Файлы и файловые группы базы данных" раздела "Примечания".

Параметры SIZE, MAXSIZE и FILEGROWTH доступны, если путь к файлу указан в формате UNC.

Если файл находится в необработанной секции, аргумент os_file_name должен указывать только букву диска существующей необработанной секции. В каждой необработанной секции может быть создан только один файл данных.

Файлы данных не следует размещать в файловых системах со сжатием, за исключением случаев, когда файлы являются вторичными и доступны только для чтения или вся база данных доступна только для чтения. Файлы журналов ни в коем случае не должны размещаться в сжатых файловых системах.

' filestream_path '  — для файловой группы FILESTREAM параметр FILENAME указывает путь, где будут храниться данные FILESTREAM. Должен существовать путь вплоть до последнего каталога, но последний каталог существовать не должен. Например, если указать путь "C:\MyFiles\MyFilestreamData", папка "C:\MyFiles" должна существовать до запуска инструкции ALTER DATABASE, а папка "MyFilestreamData" — не должна.

Файловую группу и файл (<filespec>) необходимо создавать в одной инструкции.

Свойства SIZE и FILEGROWTH к файловой группе FILESTREAM неприменимы.

SIZE size — указывает размер файла.

Параметр SIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство SIZE к файловой группе FILESTREAM не применяется.

size — задает начальный размер файла.

Если для первичного файла не задан размер, компонент size использует размер первичного файла, указанный в базе данных Компонент Database Engine. Размер модели по умолчанию — 8 МБ (начиная с SQL Server 2016 (13.x);) или 1 МБ (для более ранних версий). Когда указан вторичный файл данных или журнала, но для этого файла не указан аргумент size, Компонент Database Engine задает размер файла равным 8 МБ (начиная с SQL Server 2016 (13.x);) или 1 МБ (для более ранних версий). Размер, указанный для первичного файла, не должен быть менее размера первичного файла базы данных model.

Можно использовать суффиксы килобайт (KB), мегабайт (MB), гигабайт (GB) и терабайт (TB). По умолчанию — MБ. Укажите целое число (без дробной части). size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.

MAXSIZE max_size — задает максимальный размер, до которого может увеличиваться размер файла. Параметр MAXSIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC.

max_size — максимальный размер файла. Можно использовать суффиксы KB, MB, GB и TB. По умолчанию — MБ. Укажите целое число (без дробной части). Если аргумент max_size не указан, файл будет увеличиваться до исчерпания свободного пространства на диске. max_size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.

UNLIMITED — указывает, что размер файла может увеличиваться вплоть до заполнения диска. В SQL Server файл журнала, для которого задано неограниченное увеличение размера, имеет максимальный размер 2 ТБ, а файл данных — 16 ТБ.

Примечание

Ограничения размера отсутствуют, если этот параметр указан для контейнера FILESTREAM. Размер продолжает увеличиваться до полного заполнения диска.

FILEGROWTH growth_increment — задает шаг автоматического приращения при увеличении размера файла. Значение параметра FILEGROWTH для файла не может превосходить значение параметра MAXSIZE. Параметр FILEGROWTH не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство FILEGROWTH к файловой группе FILESTREAM не применяется.

growth_increment — объем пространства, добавляемого к файлу каждый раз, когда требуется увеличить пространство.

Значение может быть указано в килобайтах, мегабайтах, гигабайтах, терабайтах или процентах (%). Если указано число без суффикса MB, KB или %, то по умолчанию используется MB. Если размер указан в процентах (%), то шаг роста — это заданная часть в процентах от размера файла во время этого файла. Указанный размер округляется до ближайших 64 КБ, минимальное значение — 64 КБ.

Значение 0 указывает, что автоматическое приращение отключено и добавление пространства запрещено.

Если параметр FILEGROWTH не задан, доступны следующие значения по умолчанию.

Версия Значения по умолчанию
Начиная с SQL Server 2016 (13.x); Данные — 64 МБ. Файлы журналов — 64 МБ.
Начиная с SQL Server 2005 (9.x) Данные — 1 МБ. Файлы журналов — 10 %.
До SQL Server 2005 (9.x) Данные — 10 %. Файлы журналов — 10 %.

<filegroup> Управляет свойствами файловой группы. Файловая группа не может указываться для моментального снимка базы данных.

FILEGROUP filegroup_name — логическое имя файловой группы.

filegroup_name filegroup_name — должно быть уникальным в пределах базы данных и не может иметь значения PRIMARY или PRIMARY_LOG, предоставленные системой. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями. Имя должно соответствовать правилам для идентификаторов.

CONTAINS FILESTREAM — указывает, что файловая группа хранит большие двоичные объекты (BLOB-объекты) FILESTREAM в файловой системе.

CONTAINS MEMORY_OPTIMIZED_DATA

Область применения: SQL Server 2014 (12.x) и более поздних версий

Указывает, что файловая группа хранит данные memory_optimized в файловой системе. Дополнительные сведения см. в статье In-Memory OLTP (оптимизация в памяти). В каждой базе данных может присутствовать только одна файловая группа MEMORY_OPTIMIZED_DATA. Примеры кода по созданию файловых групп для хранения оптимизированных для памяти данных см. в разделе Создание таблиц, оптимизированных для памяти, и хранимых процедур, скомпилированных в собственном коде.

DEFAULT — определяет именованную файловую группу как файловую группу по умолчанию в базе данных.

database_snapshot_name — определяет имя нового моментального снимка базы данных. Имена моментальных снимков баз данных должны быть уникальны внутри экземпляра SQL Server и соответствовать правилам для идентификаторов. database_snapshot_name не может превышать 128 символов.

ON ( NAME = logical_file_name , FILENAME =' os_file_name ') [ , ... n ] — при создании моментального снимка базы данных указывает список файлов в базе данных-источнике. Для работы моментального снимка все файлы данных должны задаваться отдельно. Однако не разрешается указывать файлы журналов для моментальных снимков базы данных. В моментальных снимках базы данных не поддерживаются файловые группы FILESTREAM. Если файл данных FILESTREAM задействован в предложении CREATE DATABASE ON, выполнение этой инструкции завершится сбоем и приведет к возникновению ошибки.

Описания параметров NAME и FILENAME и их значений см. в описаниях соответствующих значений <filespec>.

Примечание

При создании моментального снимка базы данных не разрешается применять другие параметры <filespec> и ключевое слово PRIMARY.

AS SNAPSHOT OF source_database_name — обозначает, что создаваемая база данных является моментальным снимком базы данных-источника, указанной в аргументе source_database_name. Моментальный снимок и база данных-источник должны находиться в одном экземпляре.

Дополнительные сведения см. в подразделе Моментальные снимки базы данных раздела "Примечания".

Remarks

Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.

Инструкция CREATE DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не разрешена в явной или неявной транзакции.

Для создания базы данных и файлов, в которых будет храниться база данных, можно использовать одну инструкцию CREATE DATABASE. В SQL Server инструкция CREATE DATABASE реализуется посредством следующих действий:

  1. Компонент SQL Server использует копию базы данных model для инициализации базы данных и ее метаданных.
  2. Базе данных назначается идентификатор GUID компонента Service Broker.
  3. Затем компонент Компонент Database Engine заполняет остальную часть базы данных пустыми страницами, за исключением страниц, содержащих внутренние данные с описанием способа использования пространства в базе данных.

В экземпляре SQL Serverможет быть задано не более 32 767 баз данных.

У каждой базы данных есть владелец, который может выполнять специальные действия в базе данных. Владельцем является пользователь, создавший базу данных. Владельца базы данных можно изменить с помощью инструкции ALTER AUTHORIZATION.

Для обеспечения полной функциональности базы данных некоторые функции базы данных зависят от возможностей файловой системы. Далее приведено несколько примеров функций, зависящих от набора функций файловой системы.

  • DBCC CHECKDB
  • FileStream
  • Оперативное резервное копирование с помощью VSS и моментальных снимков файлов
  • Создание моментального снимка базы данных
  • Файловая группа данных, оптимизированных для памяти

Файлы и файловые группы базы данных

В каждой базе данных имеется по крайней мере два файла (первичный файл и файл журнала транзакций) и по крайней мере одна файловая группа. Для каждой базы данных может указываться не более 32 767 файлов и 32 767 файловых групп.

При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.

Для хранения файлов базы данных SQL Server рекомендуется использовать сеть хранения данных (SAN), сеть на основе iSCSI или локально подключенный диск, так как в этой конфигурации достигаются оптимальные производительность и надежность SQL Server.

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

С помощью инструкции CREATE DATABASE можно создать статическое представление, доступное только для чтения, моментальный снимок базы данных-источника. Моментальный снимок базы данных согласован с базой данных-источником на уровне транзакций в том виде, в котором она существовала в момент создания моментального снимка. База данных-источник может иметь несколько моментальных снимков.

Примечание

При создании моментального снимка инструкция CREATE DATABASE не может обращаться к файлам журналов, файлам вне сети, восстанавливаемым файлам и несуществующим файлам.

Если создание моментального снимка базы данных не удается, моментальный снимок помечается как подозрительный и подлежит удалению. Дополнительные сведения см. в описании DROP DATABASE.

Каждый моментальный снимок существует до тех пор, пока не будет удален с помощью инструкции DROP DATABASE.

Дополнительные сведения см. в описании моментальных снимков базы данных.

Параметры базы данных

Каждый раз при создании базы данных автоматически устанавливаются несколько параметров базы данных. См. список параметров ALTER DATABASE SET.

База данных model и создание новых баз данных

Все определяемые пользователем объекты в базе данных model копируются во вновь создаваемые базы данных. В базу данных model можно добавлять любые объекты, такие как таблицы, представления, хранимые процедуры, типы данных и т. д., которые войдут в состав всех вновь созданных баз данных.

Если инструкция CREATE DATABASE <database_name> указана без дополнительных параметров размера, то создается первичный файл данных того же размера, что и первичный файл в базе данных model.

Если не указан параметр FOR ATTACH, то каждая новая база данных наследует значения параметров из базы данных model. Например, параметру автоматического сжатия базы данных задано значение true в базе данных model и во всех вновь создаваемых базах данных. Если изменить параметры в базе данных model, то эти новые параметры будут использоваться во вновь создаваемых базах данных. Операции, вносящие изменения в базу данных model, не влияют на существующие базы данных. Если параметр FOR ATTACH задан в инструкции CREATE DATABASE, то новая база данных наследует значения параметров исходной базы данных.

Просмотр сведений о базе данных

Для возврата сведений о базах данных, файлах и файловых группах можно использовать представления каталогов, системные функции и системные хранимые процедуры. Дополнительные сведения см. в описании представлений системы.

Разрешения

Требуется разрешение CREATE DATABASE, CREATE ANY DATABASE или ALTER ANY DATABASE.

В целях сохранения управления над использованием диска в экземпляре SQL Serverразрешение на создание баз данных обычно предоставляется небольшому числу учетных записей входа.

В следующем примере предоставляется разрешение на создание базы данных для пользователя Fay базы данных.

USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO

Разрешения на файлы данных и журналов

В SQL Server для файлов данных и журналов каждой базы данных заданы некоторые разрешения. Следующие разрешения задаются при применении следующих операций к базе данных:

  • Присоединение
  • Создание резервной копии
  • Создание
  • Отсоединен
  • Изменение для добавления нового файла
  • Восстановление

Эти разрешения предотвращают случайное повреждение файлов, хранящихся в каталоге с открытыми разрешениями.

Примечание

Microsoft SQL Server 2005 Express Edition не задает разрешения на файлы данных и файлы журнала.

Примеры

A. Создание базы данных без указания файлов

В следующем примере создается база данных mytest и соответствующие первичный файл и файл журнала транзакций. Поскольку инструкция не включает элементы <filespec>, первичный файл базы данных имеет тот же размер, что и первичный файл базы данных model. Журнал транзакций устанавливается в соответствии с наибольшим из следующих значений: 512 КБ или 25 % от размера первичного файла данных. Поскольку параметр MAXSIZE не задан, файлы могут увеличиваться до заполнения всего свободного места на диске. Этот пример также демонстрирует, как удалить базу данных mytest, если она существует, перед созданием базы данных mytest.

USE master;
GO
IF DB_ID (N'mytest') IS NOT NULL
DROP DATABASE mytest;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO

Б. Создание базы данных, в которой заданы файлы данных и журнала транзакций

В следующем примере создается база данных Sales. Ключевое слово PRIMARY не использовано, поэтому первый файл (Sales_dat) становится первичным файлом. Поскольку в параметре SIZE для файла Sales_dat не заданы суффиксы MB и KB, используется значение MB и пространство выделяется в мегабайтах. Резервную копию базы данных Sales_log выделено в мегабайтах, потому что суффикс MB явно указан в параметре SIZE .

USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

В. Создание базы данных, в которой указаны несколько файлов данных и журналов транзакций

Следующий пример создает базу данных Archive, имеющую 3 файла данных объемом по 100-MB каждый и два файла журнала транзакций по 100-MB. Первичный файл является первым файлом в списке и явно задан ключевым словом PRIMARY. Файлы журналов транзакций заданы следующими ключевыми словами LOG ON. Обратите внимание на расширения, используемые для файлов в параметре FILENAME: .mdf для первичных файлов данных, .ndf для вторичных файлов данных и .ldf для файлов журнала транзакций. В этом примере база данных размещается на диске D:, а не вместе с базой данных master.

USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
    (NAME = Arch1,
    FILENAME = 'D:\SalesData\archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch2,
    FILENAME = 'D:\SalesData\archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch3,
    FILENAME = 'D:\SalesData\archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
LOG ON
  (NAME = Archlog1,
    FILENAME = 'D:\SalesData\archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
  (NAME = Archlog2,
    FILENAME = 'D:\SalesData\archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20) ;
GO

Г. Создание базы данных с файловыми группами

В следующем примере создается база данных Sales, в которой есть следующие файловые группы:

  • Первичная файловая группа с файлами Spri1_dat и Spri2_dat. Для этих файлов задана величина приращения FILEGROWTH, равная 15%.
  • Файловая группа с именем SalesGroup1 и файлами SGrp1Fi1 и SGrp1Fi2.
  • Файловая группа с именем SalesGroup2 и файлами SGrp2Fi1 и SGrp2Fi2.

В этом примере файлы данных и журналов размещаются на различных дисках с целью повышения производительности.

USE master;
GO
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
    FILENAME = 'D:\SalesData\SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
( NAME = SPri2_dat,
    FILENAME = 'D:\SalesData\SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
    FILENAME = 'D:\SalesData\SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
    FILENAME = 'D:\SalesData\SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
    FILENAME = 'D:\SalesData\SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
    FILENAME = 'D:\SalesData\SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'E:\SalesLog\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

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

В следующем примере база данных Archive, созданная в примере Е, отсоединяется, а затем присоединяется с помощью предложения FOR ATTACH. База данных Archive была определена с несколькими файлами данных и журналов. Однако поскольку местоположение файлов не изменилось со времени их создания, в предложении FOR ATTACH должен быть задан только первичный файл. Начиная с SQL Server 2005 (9.x) любые полнотекстовые файлы, являющиеся частью присоединяемой базы данных, будут присоединены вместе с базой данных.

USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
  ON (FILENAME = 'D:\SalesData\archdat1.mdf')
  FOR ATTACH ;
GO

Е. Создание моментального снимка базы данных

В следующем примере создается моментальный снимок базы данных sales_snapshot0600. Моментальный снимок базы данных предназначен только для чтения, поэтому нельзя задать файл журнала. В соответствии с синтаксисом задается каждый файл базы данных-источника, а файловые группы не указываются.

База данных-источник для этого примера — Sales, созданная в примере Г.

USE master;
GO
CREATE DATABASE sales_snapshot0600 ON
    ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'),
    ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'),
    ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'),
    ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'),
    ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'),
    ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss')
AS SNAPSHOT OF Sales ;
GO

Ж. Создание базы данных и назначение имени и параметров сортировки

В следующем примере создается база данных MyOptionsTest. Указано имя параметров сортировки, а параметрам TRUSTYWORTHY и DB_CHAINING присвоено значение ON.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

З. Присоединение перемещенного полнотекстового каталога

В следующем примере показано, как присоединить полнотекстовый каталог AdvWksFtCat наряду с файлами данных и журнала AdventureWorks2012. В этом примере полнотекстовый каталог перемещается из расположения по умолчанию в новое расположение c:\myFTCatalogs. Файлы данных и журналов остаются в расположениях по умолчанию.

USE master;
GO
--Detach the AdventureWorks2012 database
sp_detach_db AdventureWorks2012;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2012 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2012 ON
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_data.mdf'),
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_log.ldf'),
    (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO

И. Создание базы данных, имеющей файловую группу строк и две файловые группы FILESTREAM

В следующем примере создается база данных FileStreamDB. Эта база данных создается с одной файловой группой строк и двумя файловыми группами FILESTREAM. Каждая файловая группа содержит один файл.

  • Группа FileStreamDB_data содержит данные строк. В нее входит один файл FileStreamDB_data.mdf, расположенный в пути по умолчанию.
  • Группа FileStreamPhotos содержит данные FILESTREAM. В нее входит два контейнера данных FILESTREAM, FSPhotos, расположенный в папке C:\MyFSfolder\Photos, и FSPhotos2, расположенный в папке D:\MyFSfolder\Photos. Она отмечена как файловая группа FILESTREAM по умолчанию.
  • Группа FileStreamResumes содержит данные FILESTREAM. Она содержит один контейнер данных FILESTREAM — FSResumes, расположенный в папке C:\MyFSfolder\Resumes.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
    (
    NAME = FileStreamDB_data
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
    ),
    (
      NAME = FSPhotos2
      , FILENAME = ''D:\MyFSfolder\Photos''
      , MAXSIZE = 10000 MB
     ),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
    (
    NAME = FileStreamResumes
    ,FILENAME = ''C:\MyFSfolder\Resumes''
    )
LOG ON
    (
    NAME = FileStream_log
    ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf''
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )'
);
GO

К. Создание базы данных, имеющей файловую группу FILESTREAM с несколькими файлами

В следующем примере создается база данных BlobStore1. Эта база данных создается с одной файловой группой строк и одной файловой группой FILESTREAM, FS. Файловая группа FILESTREAM содержит два файла, FS1 и FS2. Затем выполняется изменение базы данных путем добавления третьего файла, FS3, в файловую группу FILESTREAM.

USE master;
GO

CREATE DATABASE [BlobStore1]
CONTAINMENT = NONE
ON PRIMARY
(
    NAME = N'BlobStore1',
    FILENAME = N'C:\BlobStore\BlobStore1.mdf',
    SIZE = 100MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(  
    NAME = N'FS1',
    FILENAME = N'C:\BlobStore\FS1',
    MAXSIZE = UNLIMITED
),
(
    NAME = N'FS2',
    FILENAME = N'C:\BlobStore\FS2',
    MAXSIZE = 100MB
)
LOG ON
(
    NAME = N'BlobStore1_log',
    FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 1MB
);
GO

ALTER DATABASE [BlobStore1]
ADD FILE
(
    NAME = N'FS3',
    FILENAME = N'C:\BlobStore\FS3',
    MAXSIZE = 100MB
)
TO FILEGROUP [FS];
GO

См. также:

* База данных SQL *

 

База данных SQL

Обзор

В База данных SQL Azure эту инструкцию можно применить к серверу SQL Azure для создания отдельной базы данных или базы данных в эластичном пуле. При использовании оператора нужно указать имя базы данных, параметры сортировки, максимальный размер, выпуск, цель обслуживания, и, если это применимо, эластичный пул для новой базы данных. Также он позволяет создать базу данных в эластичном пуле. Кроме того, с его помощью можно создать копию базы данных на другом сервере Базы данных SQL.

Синтаксис

Создание базы данных

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

<with_options> ::=
{
  CATALOG_COLLATION = { DATABASE_DEFAULT | SQL_Latin1_General_CP1_CI_AS }
  | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
  | LEDGER = {ON | OFF}
}

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | ( EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale' }
  | SERVICE_OBJECTIVE =
    { 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'GP_Gen4_1' | 'GP_Gen4_2' | 'GP_Gen4_3' | 'GP_Gen4_4' | 'GP_Gen4_5' | 'GP_Gen4_6'
      | 'GP_Gen4_7' | 'GP_Gen4_8' | 'GP_Gen4_9' | 'GP_Gen4_10' | 'GP_Gen4_16' | 'GP_Gen4_24'
      | 'GP_Gen5_2' | 'GP_Gen5_4' | 'GP_Gen5_6' | 'GP_Gen5_8' | 'GP_Gen5_10' | 'GP_Gen5_12' | 'GP_Gen5_14'
      | 'GP_Gen5_16' | 'GP_Gen5_18' | 'GP_Gen5_20' | 'GP_Gen5_24' | 'GP_Gen5_32' | 'GP_Gen5_40' | 'GP_Gen5_80'
      | 'GP_Fsv2_8' | 'GP_Fsv2_10' | 'GP_Fsv2_12' | 'GP_Fsv2_14' | 'GP_Fsv2_16' | 'GP_Fsv2_18'
      | 'GP_Fsv2_20' | 'GP_Fsv2_24' | 'GP_Fsv2_32' | 'GP_Fsv2_36' | 'GP_Fsv2_72'
      | 'GP_S_Gen5_1' | 'GP_S_Gen5_2' | 'GP_S_Gen5_4' | 'GP_S_Gen5_6' | 'GP_S_Gen5_8'
      | 'GP_S_Gen5_10' | 'GP_S_Gen5_12' | 'GP_S_Gen5_14' | 'GP_S_Gen5_16'
      | 'GP_S_Gen5_18' | 'GP_S_Gen5_20' | 'GP_S_Gen5_24' | 'GP_S_Gen5_32' | 'GP_S_Gen5_40'
      | 'BC_Gen4_1' | 'BC_Gen4_2' | 'BC_Gen4_3' | 'BC_Gen4_4' | 'BC_Gen4_5' | 'BC_Gen4_6'
      | 'BC_Gen4_7' | 'BC_Gen4_8' | 'BC_Gen4_9' | 'BC_Gen4_10' | 'BC_Gen4_16' | 'BC_Gen4_24'
      | 'BC_Gen5_2' | 'BC_Gen5_4' | 'BC_Gen5_6' | 'BC_Gen5_8' | 'BC_Gen5_10' | 'BC_Gen5_12' | 'BC_Gen5_14'
      | 'BC_Gen5_16' | 'BC_Gen5_18' | 'BC_Gen5_20' | 'BC_Gen5_24' | 'BC_Gen5_32' | 'BC_Gen5_40' | 'BC_Gen5_80'
      | 'BC_M_8' | 'BC_M_10' | 'BC_M_12' | 'BC_M_14' | 'BC_M_16' | 'BC_M_18'
      | 'BC_M_20' | 'BC_M_24' | 'BC_M_32' | 'BC_M_64' | 'BC_M_128'
      | 'HS_GEN4_1' | 'HS_GEN4_2' | 'HS_GEN4_4' | 'HS_GEN4_8' | 'HS_GEN4_16' | 'HS_GEN4_24'
      | 'HS_GEN5_2' | 'HS_GEN5_4' | 'HS_GEN5_8' | 'HS_GEN5_16' | 'HS_GEN5_24' | 'HS_GEN5_32' | 'HS_GEN5_48' | 'HS_GEN5_80'
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
}

Копирование базы данных

CREATE DATABASE database_name
    AS COPY OF [source_server_name.] source_database_name
    [ ( SERVICE_OBJECTIVE =
      { 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'GP_Gen4_1' | 'GP_Gen4_2' | 'GP_Gen4_3' | 'GP_Gen4_4' | 'GP_Gen4_5' | 'GP_Gen4_6'
      | 'GP_Gen4_7' | 'GP_Gen4_8' | 'GP_Gen4_9' | 'GP_Gen4_10' | 'GP_Gen4_16' | 'GP_Gen4_24'
      | 'GP_Gen5_2' | 'GP_Gen5_4' | 'GP_Gen5_6' | 'GP_Gen5_8' | 'GP_Gen5_10' | 'GP_Gen5_12' | 'GP_Gen5_14'
      | 'GP_Gen5_16' | 'GP_Gen5_18' | 'GP_Gen5_20' | 'GP_Gen5_24' | 'GP_Gen5_32' | 'GP_Gen5_40' | 'GP_Gen5_80'
      | 'GP_Fsv2_8' | 'GP_Fsv2_10' | 'GP_Fsv2_12' | 'GP_Fsv2_14' | 'GP_Fsv2_16' | 'GP_Fsv2_18'
      | 'GP_Fsv2_20' | 'GP_Fsv2_24' | 'GP_Fsv2_32' | 'GP_Fsv2_36' | 'GP_Fsv2_72'
      | 'GP_S_Gen5_1' | 'GP_S_Gen5_2' | 'GP_S_Gen5_4' | 'GP_S_Gen5_6' | 'GP_S_Gen5_8'
      | 'GP_S_Gen5_10' | 'GP_S_Gen5_12' | 'GP_S_Gen5_14' | 'GP_S_Gen5_16'
      | 'GP_S_Gen5_18' | 'GP_S_Gen5_20' | 'GP_S_Gen5_24' | 'GP_S_Gen5_32' | 'GP_S_Gen5_40'
      | 'BC_Gen4_1' | 'BC_Gen4_2' | 'BC_Gen4_3' | 'BC_Gen4_4' | 'BC_Gen4_5' | 'BC_Gen4_6'
      | 'BC_Gen4_7' | 'BC_Gen4_8' | 'BC_Gen4_9' | 'BC_Gen4_10' | 'BC_Gen4_16' | 'BC_Gen4_24'
      | 'BC_Gen5_2' | 'BC_Gen5_4' | 'BC_Gen5_6' | 'BC_Gen5_8' | 'BC_Gen5_10' | 'BC_Gen5_12' | 'BC_Gen5_14'
      | 'BC_Gen5_16' | 'BC_Gen5_18' | 'BC_Gen5_20' | 'BC_Gen5_24' | 'BC_Gen5_32' | 'BC_Gen5_40' | 'BC_Gen5_80'
      | 'BC_M_8' | 'BC_M_10' | 'BC_M_12' | 'BC_M_14' | 'BC_M_16' | 'BC_M_18'
      | 'BC_M_20' | 'BC_M_24' | 'BC_M_32' | 'BC_M_64' | 'BC_M_128'
      | 'HS_GEN4_1' | 'HS_GEN4_2' | 'HS_GEN4_4' | 'HS_GEN4_8' | 'HS_GEN4_16' | 'HS_GEN4_24'
      | 'HS_GEN5_2' | 'HS_GEN5_4' | 'HS_GEN5_8' | 'HS_GEN5_16' | 'HS_GEN5_24' | 'HS_GEN5_32' | 'HS_GEN5_48' | 'HS_GEN5_80'
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
   ]
[;]

Аргументы

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

Collation_name — определяет параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметры не указаны, базе данных назначаются параметры сортировки по умолчанию — SQL_Latin1_General_CP1_CI_AS.

Дополнительные сведения об именах параметров сортировки Windows и SQL: COLLATE (Transact-SQL).

CATALOG_COLLATION — задает параметры сортировки по умолчанию для каталога метаданных. DATABASE_DEFAULT указывает, что каталог метаданных, используемый для системных представлений и таблиц, должен быть сопоставлен параметрам сортировки по умолчанию для базы данных. Так происходит в SQL Server.

SQL_Latin1_General_CP1_CI_AS указывает, что каталог метаданных, используемый для системных представлений и таблиц, должен быть сопоставлен фиксированным параметрам сортировки SQL_Latin1_General_CP1_CI_AS. Это параметр используется в базе данных SQL Azure по умолчанию, если никакое иное значение не указано.

BACKUP_STORAGE_REDUNDANCY указывает, как реплицируются восстановление на определенный момент времени и долгосрочное хранение резервных копий для базы данных. Географическое восстановление или возможность восстановления после регионального сбоя доступны только при создании базы данных с избыточностью хранилища резервных копий уровня GEO (георепликация). Если явно не указано иное, базы данных, созданные с помощью T-SQL, используют такое геоизбыточное хранилище резервных копий.

Важно!

Параметр BACKUP_STORAGE_REDUNDANCY для Базы данных SQL Azure сейчас предоставляется только в регионе Azure Южная Бразилия в режиме общедоступной предварительной версии и полностью в регионе Azure Юго-Восточной Азии.

EDITION — определяет уровень службы базы данных.

Отдельные базы данных и базы данных в пуле. Возможные значения: "Basic", "Standard", "Premium", "GeneralPurpose", "BusinessCritical" и "Hyperscale".

MAXSIZE — указывает максимальный размер базы данных. Значение параметра MAXSIZE должно быть допустимо для указанного значения параметра EDITION (уровень службы). Далее приведены поддерживаемые значения MAXSIZE и значения по умолчанию (D) для уровней службы.

Примечание

Аргумент MAXSIZE не применяется к отдельным базам данных на уровне служб "Гипермасштабирование". Базы данных уровня "Гипермасштабирование" увеличиваются по мере необходимости до 100 ТБ. Служба "База данных SQL" автоматически добавляет объем хранилища. Задавать максимальный размер не нужно.

Модель DTU для отдельных или включенных в пул баз данных на сервере базы данных SQL

MAXSIZE Основной S0–S2 S3–S12 P1–P6 P11–P15
100 МБ
500 МБ
1 ГБ
2 ГБ √ (D)
5 ГБ Недоступно
10 ГБ Недоступно
20 ГБ Недоступно
30 ГБ Недоступно
40 ГБ Недоступно
50 ГБ Недоступно
100 ГБ Недоступно
150 ГБ Недоступно
200 ГБ Недоступно
250 ГБ Недоступно √ (D) √ (D)
300 ГБ Н/Д Н/Д
400 ГБ Н/Д Н/Д
500 ГБ Н/Д Н/Д √ (D)
750 ГБ Н/Д Н/Д
1024 ГБ Н/Д Н/Д √ (D)
От 1024 до 4096 ГБ с шагом приращения 256 ГБ * Н/Д Н/Д Н/Д Н/Д

* P11 и P15 позволяют задавать параметру MAXSIZE значение до 4 ТБ, при этом размер по умолчанию — 1024 ГБ. P11 и P15 могут использовать до 4 ТБ включенного объема хранилища без дополнительной платы. На уровне Premium использование MAXSIZE со значением более 1 ТБ сейчас доступно в следующих регионах: восточная часть США 2, западная часть США, US Gov (Вирджиния), Западная Европа, Центральная Германия, Юго-Восточная Азия, Восточная Япония, Восточная Австралия, Центральная Канада и Восточная Канада. Дополнительные сведения об ограничениях по ресурсам для модели DTU см. в разделе Пределы для ресурсов DTU.

Значение MAXSIZE для модели DTU, если оно задано, должно быть одним из допустимых значений, приведенных в таблице выше для указанного уровня служб.

Модель виртуального ядра

Общее назначение — подготовленное вычисление — 4-е поколение (часть 1)

MAXSIZE GP_Gen4_1 GP_Gen4_2 GP_Gen4_3 GP_Gen4_4 GP_Gen4_5 GP_Gen4_6
Максимальный размер данных (ГБ) 1024 1024 1024 1536 1536 1536

Общее назначение — подготовленное вычисление — 4-е поколение (часть 2)

MAXSIZE GP_Gen4_7 GP_Gen4_8 GP_Gen4_9 GP_Gen4_10 GP_Gen4_16 GP_Gen4_24
Максимальный размер данных (ГБ) 1536 3072 3072 3072 4096 4096

Общее назначение — подготовленное вычисление — 5-е поколение (часть 1)

MAXSIZE GP_Gen5_2 GP_Gen5_4 GP_Gen5_6 GP_Gen5_8 GP_Gen5_10 GP_Gen5_12 GP_Gen5_14
Максимальный размер данных (ГБ) 1024 1024 1024 1536 1536 1536 1536

Общее назначение — подготовленное вычисление — 5-е поколение (часть 2)

MAXSIZE GP_Gen5_16 GP_Gen5_18 GP_Gen5_20 GP_Gen5_24 GP_Gen5_32 GP_Gen5_40 GP_Gen5_80
Максимальный размер данных (ГБ) 3072 3072 3072 4096 4096 4096 4096

Общее назначение — подготовленное вычисление — серия Fsv2 (часть 1)

MAXSIZE GP_Fsv2_8 GP_Fsv2_10 GP_Fsv2_12 GP_Fsv2_14 GP_Fsv2_16 GP_Fsv2_18
Максимальный размер данных (ГБ) 1024 1024 1024 1024 1536 1536

Общее назначение — подготовленное вычисление — серия Fsv2 (часть 2)

MAXSIZE GP_Fsv2_20 GP_Fsv2_24 GP_Fsv2_32 GP_Fsv2_36 GP_Fsv2_72
Максимальный размер данных (ГБ) 1536 1536 3072 3072 4096

Общее назначение — бессерверное вычисление — 5-е поколение (часть 1)

MAXSIZE GP_S_Gen5_1 GP_S_Gen5_2 GP_S_Gen5_4 GP_S_Gen5_6 GP_S_Gen5_8
Максимальное число виртуальных ядер 1 2 4 6 8

Общее назначение — бессерверное вычисление — 5-е поколение (часть 2)

MAXSIZE GP_S_Gen5_10 GP_S_Gen5_12 GP_S_Gen5_14 GP_S_Gen5_16
Максимальное число виртуальных ядер 10 12 14 16

Общее назначение — бессерверное вычисление — 5-е поколение (часть 3)

MAXSIZE GP_S_Gen5_18 GP_S_Gen5_20 GP_S_Gen5_24 GP_S_Gen5_32 GP_S_Gen5_40
Максимальное число виртуальных ядер 18 20 24 32 40

Критически важный для бизнеса — подготовленное вычисление — 4-е поколение (часть 1)

Объем вычислительных ресурсов (цель обслуживания) BC_Gen4_1 BC_Gen4_2 BC_Gen4_3 BC_Gen4_4 BC_Gen4_5 BC_Gen4_6
Максимальный размер данных (ГБ) 1024 1024 1024 1024 1024 1024

Критически важный для бизнеса — подготовленное вычисление — 4-е поколение (часть 2)

Объем вычислительных ресурсов (цель обслуживания) BC_Gen4_7 BC_Gen4_8 BC_Gen4_9 BC_Gen4_10 BC_Gen4_16 BC_Gen4_24
Максимальный размер данных (ГБ) 1024 1024 1024 1024 1024 1024

Критически важный для бизнеса — подготовленное вычисление — 5-е поколение (часть 1)

MAXSIZE BC_Gen5_2 BC_Gen5_4 BC_Gen5_6 BC_Gen5_8 BC_Gen5_10 BC_Gen5_12 BC_Gen5_14
Максимальный размер данных (ГБ) 1024 1024 1024 1536 1536 1536 1536

Критически важный для бизнеса — подготовленное вычисление — 5-е поколение (часть 2)

MAXSIZE BC_Gen5_16 BC_Gen5_18 BC_Gen5_20 BC_Gen5_24 BC_Gen5_32 BC_Gen5_40 BC_Gen5_80
Максимальный размер данных (ГБ) 3072 3072 3072 4096 4096 4096 4096

Критически важный для бизнеса — подготовленное вычисление — серия M (часть 1)

MAXSIZE BC_M_8 BC_M_10 BC_M_12 BC_M_14 BC_M_16 BC_M_18
Максимальный размер данных (ГБ) 512 640 768 896 1024 1152

Критически важный для бизнеса — подготовленное вычисление — серия M (часть 2)

MAXSIZE BC_M_20 BC_M_24 BC_M_32 BC_M_64 BC_M_128
Максимальный размер данных (ГБ) 1280 1536 2048 4096 4096

Если при использовании модели виртуальных ядер значение MAXSIZE не задано, используется значение по умолчанию — 32 ГБ. Дополнительные сведения об ограничениях ресурсов в модели виртуальных ядер см. в разделе Ограничения ресурсов в модели виртуальных ядер.

Следующие правила применяются к аргументам MAXSIZE и EDITION:

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

SERVICE_OBJECTIVE

  • Для отдельных и включенных в пул баз данных

    • Определяет объем вычислительных ресурсов (цель обслуживания). Доступные значения для цели обслуживания: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15, GP_GEN4_1, GP_GEN4_2, GP_GEN4_3, GP_GEN4_4, GP_GEN4_5, GP_GEN4_6, GP_GEN4_7, GP_GEN4_8, GP_GEN4_7, GP_GEN4_8, GP_GEN4_9, GP_GEN4_10, GP_GEN4_16, GP_GEN4_24, BC_GEN4_1, BC_GEN4_2, BC_GEN4_3, BC_GEN4_4, BC_GEN4_5, BC_GEN4_6, BC_GEN4_7, BC_GEN4_8, BC_GEN4_9, BC_GEN4_10, BC_GEN4_16, BC_GEN4_24, GP_Gen5_2, GP_Gen5_4, GP_Gen5_6, GP_Gen5_8, GP_Gen5_10, GP_Gen5_12, GP_Gen5_14, GP_Gen5_16, GP_Gen5_18, GP_Gen5_20, GP_Gen5_24, GP_Gen5_32, GP_Gen5_40, GP_Gen5_80, GP_Fsv2_8, GP_Fsv2_10, GP_Fsv2_12, GP_Fsv2_14, GP_Fsv2_16, GP_Fsv2_18, GP_Fsv2_20, GP_Fsv2_24, GP_Fsv2_32, GP_Fsv2_36, GP_Fsv2_72, BC_Gen5_2, BC_Gen5_4, BC_Gen5_6, BC_Gen5_8, BC_Gen5_10, BC_Gen5_12, BC_Gen5_14, BC_Gen5_16, BC_Gen5_18, BC_Gen5_20, BC_Gen5_24, BC_Gen5_32,BC_Gen5_40, BC_Gen5_80, BC_M_8, BC_M_10, BC_M_12, BC_M_14, BC_M_16, BC_M_18, BC_M_20, BC_M_24, BC_M_32, BC_M_64, BC_M_128.
  • Для бессерверных баз данных

    • Определяет объем вычислительных ресурсов (цель обслуживания). Доступные значения для цели обслуживания: GP_S_Gen5_1, GP_S_Gen5_2, GP_S_Gen5_4, GP_S_Gen5_6, GP_S_Gen5_8, GP_S_Gen5_10, GP_S_Gen5_12, GP_S_Gen5_14, GP_S_Gen5_16, GP_S_Gen5_18, GP_S_Gen5_20, GP_S_Gen5_24, GP_S_Gen5_32, GP_S_Gen5_40.
  • Для отдельных баз данных на уровне обслуживания "Гипермасштабирование"

    • Определяет объем вычислительных ресурсов (цель обслуживания). Доступные значения для цели обслуживания: HS_GEN4_1 HS_GEN4_2 HS_GEN4_4 HS_GEN4_8 HS_GEN4_16, HS_GEN4_24, HS_Gen5_2, HS_Gen5_4, HS_Gen5_8, HS_Gen5_16, HS_Gen5_24, HS_Gen5_32, HS_Gen5_48, HS_Gen5_80.

Дополнительные сведения об описании целях служб и о размере, выпусках и комбинациях целей служб см. в разделе Уровни служб базы данных SQL Azure. Если указанное значение SERVICE_OBJECTIVE не поддерживается для значения EDITION, вы получите сообщение об ошибке. Чтобы изменить значение SERVICE_OBJECTIVE с одного уровня на другой (например, с S1 на P1), необходимо также изменить значение EDITION. Описания целей служб и дополнительные сведения о сочетаниях размеров, выпусков и целей обслуживания см. в разделах Уровни обслуживания и уровни производительности баз данных SQL Azure, Ограничения ресурсов DTU и Ограничения ресурсов в модели виртуальных ядер. Поддержка целей служб PRS была удалена. При возникновении вопросов пишите на следующий адрес premium-rs@microsoft.com.

ELASTIC_POOL (name = <elastic_pool_name>). Применимо к Только отдельные и включенные в пул базы данных. Не применяется к базам данных на уровне служб "Гипермасштабирование". Чтобы создать базу данных в эластичном пуле, задайте для параметра SERVICE_OBJECTIVE базы данных значение ELASTIC_POOL и укажите имя пула. Дополнительные сведения см. в разделе Создание эластичного пула баз данных SQL и управление им.

AS COPY OF [имя_исходного_сервера.]имя_исходной_базы Применимо к: Только отдельные и включенные в пул базы данных. Для копирования базы данных на тот же или другой сервер База данных SQL.

source_server_name Имя сервера База данных SQL, на котором размещена база данных-источник. Этот параметр не является обязательным, если исходная и конечная базы данных расположены на одном сервере База данных SQL.

Примечание

Аргумент AS COPY OF не поддерживает уникальные полные доменные имена. Другими словами, если полное доменное имя сервера —serverName.database.windows.net, во время копирования базы данных используйте только serverName.

<имя_исходной_базы>

Имя копируемой базы данных.

LEDGER = {ON | OFF}

Если задано значение ON, создается база данных реестра, в которой обеспечивается целостность всех пользовательских данных. В базе данных реестра можно создавать только таблицы реестра. Значение по умолчанию — OFF. Значение параметра LEDGER нельзя изменить после создания базы данных.

Remarks

Базы данных в База данных SQL Azure используют несколько параметров по умолчанию, устанавливаемых при создании базы данных. Дополнительные сведения об этих параметрах по умолчанию см. в списке значений в разделе DATABASEPROPERTYEX.

Параметр MAXSIZE позволяет ограничить размер базы данных. Если размер базы данных достигает ее значения MAXSIZE, выдается ошибка с кодом 40544. В этом случае данные нельзя вставить или обновить данные и создать новые объекты (например, таблицы, представления, хранимые процедуры и функции). Однако можно по-прежнему читать и удалять данные, усекать и удалять таблицы и индексы, а также выполнять перестроение индексов. Затем можно изменить значение MAXSIZE на значение, превышающее текущий размер базы данных, или удалить некоторые данные, чтобы освободить место в хранилище. Перед возобновлением возможности вставлять новые данные может пройти до 15 минут.

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

Аргумент CATALOG_COLLATION доступен только во время создания базы данных.

Копирование баз данных

Применимо к: Только отдельные и включенные в пул базы данных.

Копирование базы данных с помощью инструкции CREATE DATABASE — это асинхронная операция. Поэтому соединение с сервером База данных SQL не требуется в течение всего процесса копирования. Инструкция CREATE DATABASE возвращает управление пользователю после создания записи в sys.databases, но до завершения операции копирования базы данных. Другими словами, инструкция CREATE DATABASE возвращает контроль, когда база данных все еще копируется.

  • Наблюдение за процессом копирования на сервере База данных SQL: запросите столбцы percentage_complete или replication_state_desc в dm_database_copies или столбец state в представлении sys.databases. Вы также можете использовать представление sys.dm_operation_status, так как оно возвращает состояние операций с базой данных, включая ее копирование.

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

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

  • Имя исходного и целевого сервера для копирования могут совпадать или отличаться. Если они совпадают, этот параметр не является обязательным, а по умолчанию используется контекст сервера текущего сеанса.
  • Необходимо указать имена исходной и целевой базы данных. Они должны быть уникальными и соответствовать правилам для идентификаторов SQL Server. Дополнительные сведения: Идентификаторы.
  • Инструкция CREATE DATABASE должна выполняться в контексте базы данных master на сервере База данных SQL, на котором будет создана новая база данных.
  • После завершения копирования целевой базой данных необходимо управлять как независимой базой данных. Инструкции ALTER DATABASE и DROP DATABASE для новой базы данных можно выполнять независимо от базы данных-источника. Новую базу данных также можно скопировать в другую новую базу данных.
  • Пока выполняется копирование базы данных, база данных-источник остается доступной.

Дополнительные сведения: Копирование базы данных SQL Azure с использованием Transact-SQL.

Важно!

По умолчанию копия базы данных создается с той же избыточностью хранилища резервных копий, что и у базы данных-источника. Изменение избыточности хранилища резервных копий при создании копии базы данных не поддерживается в T-SQL.

Разрешения

Создавать базу данных могут следующие пользователи:

  • Субъект серверного уровня
  • Администратор Azure AD для локального сервера SQL Server Azure
  • Участник роли базы данных dbmanager

Дополнительные требования по использованию синтаксиса CREATE DATABASE ... AS COPY OF: пользователь, запускающий инструкцию на локальном сервере, должен также иметь как минимум роль db_owner на исходном сервере. Если для входа используется проверка подлинности SQL Server, на сервере-источнике База данных SQL должно существовать такое же имя для входа, от которого на локальном сервере запускается эта инструкция, с идентичным паролем.

Примеры

Простой пример

Простой пример создания базы данных.

CREATE DATABASE TestDB1;

Простой пример с указанием выпуска

Простой пример создания базы данных общего назначения.

CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );

Пример с дополнительными параметрами

Пример, где используются несколько параметров.

CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_GEN4_8' ) ;

Создание копии

Пример создания копии базы данных.

Применимо к: Только отдельные и включенные в пул базы данных.

CREATE DATABASE escuela
AS COPY OF school;

Создание базы данных в эластичном пуле

Создает новую базу данных в пуле с именем S3M100.

Применимо к: Только отдельные и включенные в пул базы данных.

CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;

Создание копии базы данных на другом сервере

В следующем примере создается копия базы данных db_original с именем db_copy и объемом вычислительных ресурсов (целью обслуживания) P2, заданным для одной базы данных. Это происходит вне зависимости от того, находится ли db_original в эластичном пуле и имеет ли эта база объем вычислительных ресурсов (цель обслуживания), заданный для одной базы данных.

Применимо к: Только отдельные и включенные в пул базы данных.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original ( SERVICE_OBJECTIVE = 'P2' );

В следующем примере создается копия базы данных db_original с именем db_copy в эластичном пуле с именем ep1. Это происходит вне зависимости от того, находится ли db_original в эластичном пуле и имеет ли эта база объем вычислительных ресурсов (цель обслуживания), заданный для одной базы данных. Если db_original находится в эластичном пуле с другим именем, db_copy все равно создается в ep1.

Применимо к: Только отдельные и включенные в пул базы данных.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original
  (SERVICE_OBJECTIVE = ELASTIC_POOL( name = ep1 ) ) ;

Создание базы данных с указанным значением параметров сортировки каталога

В следующем примере во время создания базы данных параметрам сортировки каталога задается значение DATABASE_DEFAULT, за счет чего параметры сортировки каталога совпадают с параметрами сортировки базы данных.

CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
  WITH CATALOG_COLLATION = DATABASE_DEFAULT

Создание базы данных с использованием избыточности между зонами для резервных копий

В следующем примере задается избыточность между зонами для резервных копий базы данных. Резервные копии для восстановления на определенный момент времени, а также резервные копии долгосрочного хранения (если настроены) будут использовать один и тот же уровень избыточности хранилища резервных копий.

CREATE DATABASE test_zone_redundancy 
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Создание базы данных реестра

CREATEDATABASE MyLedgerDB ( EDITION = 'GeneralPurpose' ) WITH LEDGER = ON;

См. также раздел

* Управляемый экземпляр SQL *

 

Управляемый экземпляр SQL Azure

Обзор

В Управляемом экземпляре SQL Azure эта инструкция используется для создания базы данных. При создании базы данных в управляемом экземпляре вы можете указать имя базы данных и параметры сортировки.

Синтаксис

CREATE DATABASE database_name [ COLLATE collation_name ]
[;]

Важно!

Чтобы добавить файлы или настроить автономность для базы данных в управляемом экземпляре, используйте инструкцию ALTER DATABASE.

Аргументы

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

Collation_name — определяет параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметры не указаны, базе данных назначаются параметры сортировки по умолчанию — SQL_Latin1_General_CP1_CI_AS.

Дополнительные сведения об именах параметров сортировки Windows и SQL: COLLATE (Transact-SQL).

Remarks

Базы данных в База данных SQL Azure используют несколько параметров по умолчанию, устанавливаемых при создании базы данных. Дополнительные сведения об этих параметрах по умолчанию см. в списке значений в разделе DATABASEPROPERTYEX.

Важно!

Инструкция CREATE DATABASE должна быть единственной инструкцией в пакете Transact-SQL.

CREATE DATABASE имеет следующие ограничения:

  • невозможно определить файлы и файловые группы;

  • параметры WITH не поддерживаются.

    Совет

    В качестве решения можно использовать ALTER DATABASE после CREATE DATABASE, чтобы задать параметры базы данных и (или) добавить файлы.

Разрешения

Создавать базу данных могут следующие пользователи:

  • Субъект серверного уровня
  • Администратор Azure AD для локального сервера SQL Server Azure
  • Участник роли базы данных dbcreator

Примеры

Простой пример

Простой пример создания базы данных.

CREATE DATABASE TestDB1;

См. также раздел

См. описание ALTER DATABASE.

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Обзор

В Azure Synapse эту инструкцию можно использовать с сервером Базы данных SQL Azure для создания базы данных SQL Analytics. Для этого оператора нужно указать имя базы данных, параметры сортировки, максимальный размер, выпуск и цель обслуживания.

Синтаксис

CREATE DATABASE database_name [ COLLATE collation_name ]
(
    [ MAXSIZE = {
          250 | 500 | 750 | 1024 | 5120 | 10240 | 20480 | 30720
        | 40960 | 51200 | 61440 | 71680 | 81920 | 92160 | 102400
        | 153600 | 204800 | 245760
      } GB ,
    ]
    EDITION = 'datawarehouse',
    SERVICE_OBJECTIVE = {
         'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500' | 'DW600'
        | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000' | 'DW3000' | 'DW6000'
        |'DW100c' | 'DW200c' | 'DW300c' | 'DW400c' | 'DW500c'
        | 'DW1000c' | 'DW1500c' | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c'
        | 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
    }
)
[;]

Аргументы

database_name — имя новой базы данных. Это имя должно быть уникальным на сервере SQL Server, где могут размещаться базы данных База данных SQL Azure и Azure Synapse Analytics. Кроме того, оно должно соответствовать правилам SQL Server для идентификаторов. Дополнительные сведения: Идентификаторы.

collation_name — определяет параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметры не указаны, базе данных назначаются параметры сортировки по умолчанию — SQL_Latin1_General_CP1_CI_AS.

Дополнительные сведения об именах параметров сортировки Windows и SQL: COLLATE (Transact-SQL).

EDITION — определяет уровень службы базы данных. Для Azure Synapse Analytics используйте datawarehouse.

MAXSIZE —значение по умолчанию: 245 760 ГБ (240 ТБ).

Применимо к: Оптимизировано для поколения вычислительных ресурсов 1

Максимально допустимый размер базы данных. Размер базы данных не может превышать MAXSIZE.

Применимо к: Оптимизировано для поколения вычислительных ресурсов 2

Максимально допустимый размер данных rowstore в базе данных. Размер данных, хранящихся в таблицах rowstore, разностном хранилище индекса columnstore или некластеризованном индексе на базе кластеризованного индекса columnstore не может превышать значение MAXSIZE. Ограничения по размеру (значение MAXSIZE) не применяются к данным, сжатым в формат columnstore.

SERVICE_OBJECTIVE — определяет объем вычислительных ресурсов (цель обслуживания). Подробные сведения о целях служб для Azure Synapse см. в статье о единицах использования хранилища данных (DWU).

Общие замечания

Используйте DATABASEPROPERTYEX, чтобы просмотреть свойства базы данных.

Инструкция ALTER DATABASE в Azure Synapse Analytics позволяет позднее изменить значения максимального размера или целевого уровня службы.

Для Azure Synapse задано значение COMPATIBILITY_LEVEL 130, изменить которое невозможно. Дополнительные сведения: Улучшение производительности запросов с уровнем совместимости 130 в базе данных SQL Azure.

Разрешения

Необходимые разрешения:

  • имя входа субъекта серверного уровня, созданное процессом подготовки или
  • член роли базы данных dbmanager.

Обработка ошибок

Если размер базы данных достигает значения MAXSIZE, выдается ошибка с кодом 40544. В этом случае вы не сможете вставлять и изменять данные или создавать новые объекты (например, таблицы, хранимые процедуры, представления и функции). Вы по-прежнему можете считывать и удалять данные, усекать и удалять таблицы и индексы, а также выполнять перестроение индексов. Затем можно изменить значение MAXSIZE на значение, превышающее текущий размер базы данных, или удалить некоторые данные, чтобы освободить место в хранилище. Перед возобновлением возможности вставлять новые данные может пройти до 15 минут.

Ограничения

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

Инструкция CREATE DATABASE должна быть единственной инструкцией в пакете Transact-SQL.

После создания базы данных изменить ее параметры сортировки будет невозможно.

Примеры: Azure Synapse Analytics

A. Простой пример

Простой пример создания базы данных хранилища данных. В примере создается база данных с наименьшим максимальным размером, равным 10 240 ГБ, параметром сортировки по умолчанию SQL_Latin1_General_CP1_CI_AS и наименьшей вычислительной мощностью DW100.

CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100');

Б. Создание базы данных хранилища данных со всеми параметрами

Пример создания хранилища данных объемом 10 ТБ с использованием всех параметров.

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000');

См. также:

* Analytics Platform
System (PDW) *

 

Система платформы аналитики

Обзор

В Analytics Platform System эта инструкция создает базу данных на устройстве под управлением Analytics Platform System. Используйте эту инструкцию, чтобы создать все файлы, связанные с базой данных устройства, и задать максимальный размер и параметры автоматического увеличения для таблицы базы данных и журнала транзакций.

Синтаксис

CREATE DATABASE database_name
WITH (
    [ AUTOGROW = ON | OFF , ]
    REPLICATED_SIZE = replicated_size [ GB ] ,
    DISTRIBUTED_SIZE = distributed_size [ GB ] ,
    LOG_SIZE = log_size [ GB ] )
[;]

Аргументы

database_name — имя новой базы данных. Дополнительные сведения о допустимых именах баз данных см. в разделе "Правила именования объектов" и "Зарезервированные имена базы данных" в статье Документация по Parallel Data Warehouse.

AUTOGROW = ON | OFF — указывает, будут ли параметры replicated_size, distributed_size и log_size для этой базы данных автоматически увеличиваться по мере необходимости. Значение по умолчанию — OFF.

Если для параметра AUTOGROW установлено значение ON, параметры replicated_size, distributed_size и log_size будут увеличиваться по мере необходимости (не в блоках начального заданного размера) в результате вставки или обновления данных или другого действия, которое требует больше места, чем уже выделено.

Если для параметра AUTOGROW установлено значение OFF, размеры не будут увеличиваться автоматически. Система платформы аналитики (PDW) вернет ошибку при попытке выполнения действия, которое требует увеличения значений replicated_size, distributed_size или log_size.

Параметр AUTOGROW принимает значение ON или OFF для всех размеров. Например, невозможно включить AUTOGROW для log_size и отключить для replicated_size.

replicated_size [ GB ] — положительное число. Задает размер (в виде целого или десятичного числа гигабайт) всего пространства, выделенного для реплицированных таблиц и соответствующих данных на каждом вычислительном узле. Требования к минимальному и максимальному значению replicated_size см. в разделе "Минимальные и максимальные значения" в Документация по Parallel Data Warehouse.

Если для параметра AUTOGROW установлено значение ON, реплицированные таблицы могут увеличиваться.

Если для параметра AUTOGROW установлено значение OFF, при попытке пользователя создать новую реплицированную таблицу, вставить данные в существующую реплицированную таблицу или обновить существующую реплицированную таблицу с увеличением значения replicated_size будет возвращена ошибка.

distributed_size [ GB ] — положительное число. Размер (в виде целого или десятичного числа гигабайт) всего пространства, выделенного для распределенных таблиц и соответствующих данных на устройстве. Требования к минимальному и максимальному значению distributed_size см. в разделе "Минимальные и максимальные значения" в статье Документация по Parallel Data Warehouse.

Если для параметра AUTOGROW установлено значение ON, распределенные таблицы могут увеличиваться.

Если для параметра AUTOGROW установлено значение OFF, при попытке пользователя создать новую распределенную таблицу, вставить данные в существующую распределенную таблицу или обновить существующую распределенную таблицу с увеличением значения distributed_size будет возвращена ошибка.

log_size [ GB ] — положительное число. Размер (в виде целого или десятичного числа гигабайт) для журнала транзакций на устройстве.

Требования к минимальному и максимальному значению log_size см. в разделе "Минимальные и максимальные значения" в статье Документация по Parallel Data Warehouse.

Если для параметра AUTOGROW установлено значение ON, файл журнала может увеличиваться в размерах. Используйте инструкцию DBCC SHRINKLOG (Azure Synapse Analytics), чтобы уменьшить размер файлов журнала до исходного значения.

Если для параметра AUTOGROW установлено значение OFF, в случае любого действия, которое увеличит размер журнала на отдельном вычислительном узле с превышением значения log_size, будет возвращена ошибка.

Разрешения

Необходимо разрешение CREATE ANY DATABASE в базе данных master или членство в предопределенной роли сервера sysadmin.

В следующем примере предоставляется разрешение на создание базы данных для пользователя Fay базы данных.

USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO

Общие замечания

Базы данных создаются с уровнем совместимости базы данных 120, который является уровнем совместимости для SQL Server 2014 (12.x). Это гарантирует, что база данных сможет использовать все функции SQL Server 2014 (12.x), которые использует PDW.

Ограничения

Инструкция CREATE DATABASE не разрешена в явных транзакциях. Дополнительные сведения см. в разделе Инструкции.

Сведения о минимальных и максимальных ограничениях для базы данных см. в разделе "Минимальные и максимальные значения" в статье Документация по Parallel Data Warehouse.

Во время создания базы данных должно быть достаточно свободного места на каждом вычислительном узле для распределения общей суммы следующих размеров:

  • База данных SQL Server с таблицами со значением размера replicated_table_size.
  • База данных SQL Server с таблицами со значением размера (distributed_table_size / количество вычислительных узлов).
  • Журналы SQL Server со значением размера (log_size / количество вычислительных узлов).

Блокировка

Принимает совмещаемую блокировку для объекта DATABASE.

Метаданные

После успешного завершения этой операции в представлениях метаданных sys.databases и sys.objects появится запись для этой базы данных.

Примеры: Система платформы аналитики (PDW)

A. Примеры создания базовых баз данных

В следующем примере создается база данных mytest с выделением 100 ГБ на вычислительный узел для реплицированных таблиц, 500 ГБ на устройство для распределенных таблиц и 100 ГБ на устройство для журнала транзакций. В этом примере параметр AUTOGROW отключен по умолчанию.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB );

В следующем примере создается база данных mytest с указанными выше параметрами, но AUTOGROW включен. Это позволяет базе данных увеличиваться и превышать указанные значения размера.

CREATE DATABASE mytest
  WITH
    (AUTOGROW = ON,
    REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB);

Б. Создание базы данных с десятичным числом гигабайт

В следующем примере создается база данных mytest с отключенным параметром AUTOGROW, с выделением 1,5 ГБ на вычислительный узел для реплицированных таблиц, 5,25 ГБ на устройство для распределенных таблиц и 10 ГБ на устройство для журнала транзакций.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 1.5 GB,
    DISTRIBUTED_SIZE = 5.25 GB,
    LOG_SIZE = 10 GB);

См. также: