Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
создает базу данных;
Выберите одну из следующих вкладок для синтаксиса, аргументов, примечаний, разрешений и примеров для конкретной версии SQL, с которой вы работаете.
Выбор продукта
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
* SQL Server *
SQL Server
Обзор
В SQL Server эта инструкция создает базу данных, используемые для нее файлы и их файловые группы. Также она позволяет создать моментальный снимок базы данных или подключить файлы для создания базы данных из отсоединенных файлов другой базы данных.
Синтаксис
Создается база данных .
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
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 = 'path-to-directory-on-a-DAX-volume' )
| LEDGER = { ON | OFF }
}
<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= частично содержащаяся база данных.
DNS
Указывает, что дисковые файлы, используемые для хранения разделов данных в базе данных, файлов данных, определяются явно.
ON требуется, если за ним следует разделенный запятыми список элементов, определяющих <filespec> файлы данных для основной файловой группы. За списком файлов в основной файловой группе может следовать необязательный список <filegroup> элементов, разделенных запятыми, которые определяют файловые группы пользователей и их файлы.
ОСНОВНОЙ
Указывает, что связанный <filespec> список определяет основной файл. Первый файл, <filespec> указанный в записи в первичной файловой группе, становится первичным файлом. В базе данных может быть только один первичный файл. Дополнительные сведения см. в разделе "Файлы базы данных" и файловых групп.
Если PRIMARY он не указан, первый файл, указанный в CREATE DATABASE инструкции, становится основным файлом.
ВХОД
Указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть файлы журналов, определяются явно.
LOG ON Далее следует разделенный запятыми список <filespec> элементов, определяющих файлы журнала. Если LOG ON это не указано, создается автоматически один файл журнала, размер которого составляет 25 процентов от суммы всех файлов данных для базы данных или 512 КБ. Этот файл помещается в местоположение для журнала по умолчанию. Сведения об этом расположении см. в разделе "Просмотр" или изменение расположений по умолчанию для файлов данных и журналов.
LOG ON невозможно указать моментальный снимок базы данных.
СОПОСТАВИТЬ collation_name
Задает параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметр не указан, базе данных назначаются параметры сортировки по умолчанию для экземпляра SQL Server. Имя сортировки невозможно указать в моментальном снимке базы данных.
Имя сортировки невозможно указать в FOR ATTACH предложениях или FOR ATTACH_REBUILD_LOG предложениях. Сведения о том, как изменить параметры сортировки подключенной базы данных, см. в разделе Установка или изменение параметров сортировки базы данных.
Дополнительные сведения о именах параметров сортировки Windows и SQL см. в разделе COLLATE.
Примечание.
Сортировка в автономных базах данных отличается от неавтономных баз данных. Дополнительные сведения см. в разделе " Параметры сортировки автономной базы данных".
<Параметр> инструкции WITH
<Параметр_filestream>
NON_TRANSACTED_ACCESS = { ВЫКЛ | READ_ONLY | ПОЛНЫЙ }
Область применения: 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> | <имя> языка | <псевдоним языка>
Область применения: SQL Server 2012 (11.x) и более поздних версий
См . раздел "Конфигурация сервера" по умолчанию для полнотекстового языка для полного описания этого параметра.
DEFAULT_LANGUAGE = <lcid> | <имя> языка | <псевдоним языка>
Область применения: SQL Server 2012 (11.x) и более поздних версий
См . раздел "Конфигурация сервера: язык по умолчанию " для полного описания этого параметра.
NESTED_TRIGGERS = { OFF | ON}
Область применения: SQL Server 2012 (11.x) и более поздних версий
См . сведения о конфигурации сервера: вложенные триггеры для полного описания этого параметра.
TRANSFORM_NOISE_WORDS = { OFF | ON}
Область применения: SQL Server 2012 (11.x) и более поздних версий
См . сведения о конфигурации сервера: преобразование слов шума для полного описания этого параметра.
TWO_DIGIT_YEAR_CUTOFF = { 2049 | <любой год от 1753 до 9999> }
Четыре цифры, обозначающие год. Значение по умолчанию — 2049. См . раздел конфигурации сервера: двухзначный отрезок года для полного описания этого параметра.
DB_CHAINING { ВЫКЛ | ВКЛ }
Если ON задано, база данных может быть источником или целью межбазовой цепочки владения.
Если OFFбаза данных не может участвовать в цепочке владения между базами данных. Значение по умолчанию — OFF.
Внимание
Экземпляр SQL Server распознает этот параметр, если параметр сервера цепочки владения между базами данных имеет значение 0 (OFF). Если цепочка владения между базами данных составляет 1 (ON), все пользовательские базы данных могут участвовать в цепочках владения между базами данных независимо от значения этого параметра. Этот параметр задается с помощью процедуры sp_configure.
Чтобы задать этот параметр, требуется членство в предопределенных ролях сервера sysadmin . Параметр DB_CHAINING нельзя задать в этих системных базах данных: master, , modeltempdb.
ЗАСЛУЖИВАЮЩИЙ ДОВЕРИЯ { ВЫКЛ | ВКЛ }
При ON указании модули базы данных (например, представления, определяемые пользователем функции или хранимые процедуры), использующие контекст олицетворения, могут получить доступ к ресурсам за пределами базы данных.
Когда OFFмодули базы данных в контексте олицетворения не могут получить доступ к ресурсам за пределами базы данных. Значение по умолчанию — OFF.
TRUSTWORTHY устанавливается значение OFF при подключении базы данных.
По умолчанию все системные базы данных, кроме msdb базы данных, имеют TRUSTWORTHY значение OFF. Значение нельзя изменить для model баз данных и tempdb баз данных. Рекомендуется никогда не задавать TRUSTWORTHY параметр ON для master базы данных.
PERSISTENT_LOG_BUFFER = ON ( DIRECTORY_NAME = "directory_name" )
Область применения: SQL Server 2017 (14.x) и более поздних версий
Если указан этот параметр, буфер журнала транзакций создается в томе на дисковом устройстве с поддержкой памяти класса хранилища (энергонезависимое хранилище NVDIMM-N), которое также называется постоянным буфером журнала. Дополнительные сведения см. в статье Ускорение задержки фиксации транзакций с помощью памяти класса хранилища и добавление буфера сохраняемого журнала в базу данных.
РЕЕСТР = { ON | OFF }
Если задано значение ON, создается база данных реестра, в которой обеспечивается целостность всех пользовательских данных. В базе данных реестра можно создавать только таблицы реестра. Значение по умолчанию — OFF. Значение LEDGER параметра невозможно изменить после создания базы данных. Дополнительные сведения см. в разделе Настройка базы данных реестра.
CREATE DATABASE ... FOR ATTACH [ WITH <ATTACH_DATABASE_OPTION> ]
Указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Должна быть запись, указывающая <filespec> основной файл. Единственные другие <filespec> необходимые записи — это записи для любых файлов, путь к которым отличается от пути к базе данных при первом создании или последнем присоединении. Для этих файлов должна быть указана запись <filespec> .
FOR ATTACH Требует:
- Должны быть доступны все файлы данных (MDF и NDF).
- Если существует несколько файлов журналов, все они должны быть доступны.
Если база данных чтения и записи содержит один файл журнала, который сейчас недоступен, и если база данных была закрыта без пользователей или открытых транзакций перед ATTACH операцией, FOR ATTACH автоматически перестраивает файл журнала и обновляет первичный файл. В отличие от этого, для базы данных только для чтения журнал не может быть перестроен, так как основной файл не может быть обновлен. Поэтому при присоединении базы данных только для чтения с журналом, недоступным, необходимо предоставить файлы журнала или файлы в предложении FOR ATTACH .
Примечание.
База данных, созданная более последней версией SQL Server, не может быть присоединена в более ранних версиях.
В SQL Server все полнотекстовые файлы, которые являются частью подключенной базы данных, присоединяются к базе данных. Чтобы задать новый путь полнотекстового каталога, следует указать новое местоположение без имени полнотекстового файла операционной системы. Дополнительные сведения см. в примерах .
При подключении базы данных, содержащей параметр FILESTREAM "Имя каталога", SQL Server запрашивает подтверждение уникальности имени Database_Directory . Если это не так, ATTACH операция завершается ошибкой FILESTREAM Database_Directory name is not unique in this SQL Server instance. Чтобы избежать этой ошибки, необходимо передать этой операции необязательный параметр directory_name.
FOR ATTACH невозможно указать моментальный снимок базы данных.
FOR ATTACH может указать RESTRICTED_USER параметр.
RESTRICTED_USER позволяет только членам предопределенных ролей базы данных db_owner и dbcreator и sysadmin фиксированных ролей сервера подключаться к базе данных, но не ограничивает их число. Пользователям, не соответствующим этому условию, подключение не разрешается.
<service_broker_option>
Если база данных использует компонент Service Broker, используйте в WITH <service_broker_option> предложении FOR ATTACH :
Управляет доставкой сообщений 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 нужно обновить по меньшей мере до версии SQL Server 2005 (9.x) SP2. Невозможно подключить базу данных с помощью формата хранилища vardecimal к более ранней версии SQL Server. Дополнительные сведения о формате хранилища vardecimal см. в разделе "Сжатие данных".
При первом присоединении или восстановлении базы данных к новому экземпляру SQL Server копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. См. дополнительные сведения о повторном создании главного ключа базы данных. Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание ключа интеллектуального анализа данных для обновления до AES необходимо только один раз и не влияет на будущие повторное создание в рамках стратегии смены ключей. Сведения об обновлении базы данных с помощью подключения см. в статье Об обновлении базы данных с помощью отсоединения и подключения.
Внимание
Рекомендуется не присоединять базы данных из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Примечание.
Параметры TRUSTWORTHY и DB_CHAINING параметры не влияют при присоединении базы данных.
ДЛЯ ATTACH_REBUILD_LOG
Указывает, что база данных создана путем присоединения существующего набора файлов операционной системы. Этот параметр применяется только в базах данных, доступных для чтения и записи. Должна быть <filespec> запись с указанием основного файла. Если один или несколько файлов журналов транзакций отсутствуют, то файл журнала перестраивается. ATTACH_REBUILD_LOG автоматически создает новый файл журнала размером 1 МБ. Этот файл помещается в местоположение для журнала по умолчанию. Сведения об этом расположении см. в разделе "Просмотр" или изменение расположений по умолчанию для файлов данных и журналов.
Примечание.
Если файлы журналов доступны, ядро СУБД использует их, не перестраивая файлы журнала.
FOR ATTACH_REBUILD_LOG требует следующих условий:
- Чистое завершение работы базы данных.
- Должны быть доступны все файлы данных (MDF и NDF).
Внимание
Эта операция разрывает цепочку резервных копий журнала. Мы рекомендуем вам сделать полное резервное копирование базы данных сразу после завершения операции. Дополнительные сведения см. в описании BACKUP.
Как правило, FOR ATTACH_REBUILD_LOG используется при копировании базы данных чтения/записи с большим объемом журнала на другой сервер, где копия будет использоваться в основном или только для операций чтения и, следовательно, требует меньше места для журнала, чем исходная база данных.
FOR ATTACH_REBUILD_LOG невозможно указать моментальный снимок базы данных.
Дополнительные сведения о присоединении и отключении баз данных см. в разделе "Отсоединение и подключение базы данных" (SQL Server).
<filespec>
Управляет свойствами файла.
НАЗВАНИЕ logical_file_name
Задает логическое имя файла.
NAME является обязательным, когда FILENAME указано, за исключением случая указания FOR ATTACH одного из предложений. Не удается назвать PRIMARYфайловую FILESTREAM группу.
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 должен указывать только букву диска существующей необработанной секции. В каждой необработанной секции может быть создан только один файл данных.
Примечание.
Необработанные секции не поддерживаются в SQL Server 2014 (12.x) и более поздних версиях.
Файлы данных не следует помещать в сжатые файловые системы, если только файлы не являются вторичными файлами только для чтения, или база данных доступна только для чтения. Файлы журналов ни в коем случае не должны размещаться в сжатых файловых системах.
filestream_path
Для файловой группы
FILENAMEFILESTREAM ссылается на путь, в котором будут храниться данные FILESTREAM. Должен существовать путь вплоть до последнего каталога, но последний каталог существовать не должен. Например, если указать путьC:\MyFiles\MyFilestreamData,C:\MyFilesнеобходимо существовать перед запускомALTER DATABASEMyFilestreamData, но папка не должна существовать.Файловую группу и файл (
<filespec>) необходимо создавать в одной инструкции.FILEGROWTHСвойстваSIZEне применяются к файловой группе FILESTREAM.
РАЗМЕР
Указывает размер файла.
SIZE невозможно указать, когда os_file_name указан как UNC-путь.
SIZE не применяется к файловой группе FILESTREAM.
размер
Начальный размер файла.
Если размер не указан для первичного файла, ядро СУБД использует размер первичного файла в
modelбазе данных. Размер базы данныхmodelпо умолчанию — 8 МБ (начиная с SQL Server 2016 (13.x)) или 1 МБ (для более ранних версий). Если указан дополнительный файл данных или файл журнала, но размер файла не указан для файла, ядро СУБД делает файл размером 8 МБ (начиная с SQL Server 2016 (13.x)) или 1 МБ (для более ранних версий). Размер, указанный для первичного файла, не должен быть меньше размера первичного файла базы данныхmodel.Можно использовать суффиксы килобайт (KB), мегабайт (MB), гигабайт (GB) и терабайт (TB). По умолчанию — MБ. Укажите целое число. Не включайте десятичное значение. размер — целочисленное значение. Для значений, превышающих 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, используйте более крупные единицы измерения.
НЕОГРАНИЧЕННЫЙ
Указывает, что файл может расти вплоть до заполнения диска. В SQL Server файл журнала, указанный с неограниченным ростом, имеет максимальный размер 2 ТБ, а файл данных имеет максимальный размер 16 ТБ.
Примечание.
При указании этого параметра для контейнера FILESTREAM не существует максимального размера. Размер продолжает увеличиваться до полного заполнения диска.
GROWTH_INCREMENT FILEGROWTH
Задает автоматический шаг роста файла. Параметр FILEGROWTH для файла не может превышать MAXSIZE этот параметр.
FILEGROWTH невозможно указать, когда os_file_name указан как UNC-путь.
FILEGROWTH не применяется к файловой группе FILESTREAM.
growth_increment
Объем пространства, добавляемого в файл каждый раз, когда требуется новое пространство.
Значение можно указать в
KB,MB,GB,TBили проценте (%). Если число указано безKBсуффиксаMBили%суффикса, значение по умолчанию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_name
Логическое имя файловой группы.
filegroup_name
filegroup_name должен быть уникальным в базе данных и не может быть системными именами
PRIMARYиPRIMARY_LOG. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями. Имя должно соответствовать правилам для идентификаторов.СОДЕРЖИТ ФАЙЛОВЫЙ ПОТОК
Указывает, что файловая группа хранит большие двоичные объекты (BLOB) FILESTREAM в файловой системе.
ПО УМОЛЧАНИЮ
Задает именованную файловую группу как файловую группу по умолчанию в базе данных.
СОДЕРЖИТ MEMORY_OPTIMIZED_DATA
Область применения: SQL Server 2014 (12.x) и более поздних версий
Указывает, что файловая группа хранит данные memory_optimized в файловой системе. Дополнительные сведения см. в разделеIn-Memory обзоре и сценариях использования OLTP. Для каждой базы данных допускается только одна
MEMORY_OPTIMIZED_DATAфайловая группа. Примеры кода по созданию файловых групп для хранения оптимизированных для памяти данных см. в разделе Создание таблиц, оптимизированных для памяти, и хранимых процедур, скомпилированных в собственном коде.
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 запрещены.
МОМЕНТАЛЬНЫЙ СНИМОК SOURCE_DATABASE_NAME
Обозначает, что создаваемая база данных является моментальным снимком базы данных-источника, указанной аргументом source_database_name. Моментальный снимок и база данных-источник должны находиться в одном экземпляре.
В SQL Server 2017 (14.x) и более ранних версиях исходная база данных для моментального снимка базы данных не могла содержать файловую группу MEMORY_OPTIMIZED_DATA . Добавлена поддержка моментальных снимков базы данных в памяти в SQL Server 2019 (15.x).
Дополнительные сведения см. в описании моментальных снимков базы данных.
Замечания
Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.
Инструкция CREATE DATABASE должна выполняться в режиме автокоммитирования (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.
Для создания базы данных и файлов, в которых будет храниться база данных, можно использовать одну инструкцию CREATE DATABASE. SQL Server реализует инструкцию CREATE DATABASE , выполнив следующие действия.
- SQL Server использует копию базы данных model для инициализации базы данных и ее метаданных.
- Базе данных назначается идентификатор GUID компонента Service Broker.
- Ядро СУБД затем заполняет остальную часть базы данных пустыми страницами, за исключением страниц, содержащих внутренние данные с описанием способа использования пространства в базе данных.
В экземпляре SQL Server можно указать не более 32 767 баз данных.
У каждой базы данных есть владелец, который может выполнять специальные действия в базе данных. Владельцем является пользователь, создавший базу данных. Владельца базы данных можно изменить с помощью инструкции ALTER AUTHORIZATION.
Для обеспечения полной функциональности базы данных некоторые функции базы данных зависят от возможностей файловой системы. Далее приведено несколько примеров функций, зависящих от набора функций файловой системы.
DBCC CHECKDB- Файловый поток
- Оперативное резервное копирование с помощью VSS и моментальных снимков файлов
- Создание моментального снимка базы данных
- Файловая группа данных, оптимизированных для памяти
Файлы базы данных и файловые группы
В каждой базе данных имеется по крайней мере два файла (первичный файл и файл журнала транзакций) и по крайней мере одна файловая группа. Для каждой базы данных может указываться не более 32 767 файлов и 32 767 файловых групп.
При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
Для хранения файлов базы данных SQL Server рекомендуется использовать сеть хранения данных (SAN), сеть на основе iSCSI или локально подключенный диск, так как в этой конфигурации достигаются оптимальные производительность и надежность SQL Server.
Моментальные снимки базы данных
С помощью инструкции CREATE DATABASE можно создать статическое представление, доступное только для чтения, моментальный снимокбазы данных-источника. Моментальный снимок базы данных согласован с базой данных-источником на уровне транзакций в том виде, в котором она существовала в момент создания моментального снимка. База данных-источник может иметь несколько моментальных снимков.
Примечание.
При создании моментального снимка CREATE DATABASE базы данных инструкция не может ссылаться на файлы журналов, автономные файлы, восстановление файлов и нефункциональные файлы.
Если создание моментального снимка базы данных не удается, моментальный снимок помечается как подозрительный и подлежит удалению. Дополнительные сведения см. в описании DROP DATABASE.
Каждый моментальный снимок сохраняется до тех пор, пока он не будет удален с помощью DROP DATABASE.
Дополнительные сведения см. в статьях "Моментальные снимки базы данных" (SQL Server) и создание моментального снимка базы данных.
Параметры базы данных
Каждый раз при создании базы данных автоматически устанавливаются несколько параметров базы данных. Список этих параметров см. в разделе ALTER DATABASE SET.
База данных модели и создание новых баз данных
Все определяемые пользователем объекты в базе данных 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 не задает разрешения на данные и файл журнала.
Примеры
А. Создание базы данных без указания файлов
В следующем примере создается база данных 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) становится основным файлом. Так как в параметре SIZESales_dat файла не указан ни МБ, ни КБ, он использует 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
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 = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100 MB, MAXSIZE = 200,
FILEGROWTH = 20
)
LOG ON (
NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100 MB,
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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
GO
Е. Присоединение базы данных
В следующем примере база данных Archive, созданная в примере Е, отсоединяется, а затем присоединяется с помощью предложения FOR ATTACH. База данных Archive была определена с несколькими файлами данных и журналов. Однако, так как расположение файлов не изменилось с момента их создания, в предложении необходимо указать FOR ATTACH только основной файл. Начиная с SQL Server 2005 (9.x), все полнотекстовые файлы, которые являются частью подключаемой базы данных, присоединяются к базе данных.
USE master;
GO
EXECUTE sp_detach_db Archive;
GO
CREATE DATABASE Archive
ON
(FILENAME = 'D:\SalesData\archdat1.mdf') FOR ATTACH;
GO
F. Создание моментального снимка базы данных
В следующем примере создается моментальный снимок базы данных 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
G. Создание базы данных и назначение имени и параметров сортировки
В следующем примере создается база данных 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
H. Присоединение перемещенного полнотекстового каталога
В следующем примере показано, как присоединить полнотекстовый каталог AdvWksFtCat наряду с файлами данных и журнала AdventureWorks2022. В этом примере полнотекстовый каталог перемещается из расположения по умолчанию в новое расположение c:\myFTCatalogs. Файлы данных и журналов остаются в расположениях по умолчанию.
USE master;
GO
--Detach the AdventureWorks2022 database
EXECUTE sp_detach_db AdventureWorks2022;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2022 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2022 ON
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'),
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_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 AS 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 = 10 MB,
MAXSIZE = 50 MB,
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 is 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);');
GO
J. Создание базы данных, имеющей файловую группу 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 = 100 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1 MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(NAME = N'FS1', FILENAME = N'C:\BlobStore\FS1', MAXSIZE = UNLIMITED),
(NAME = N'FS2', FILENAME = N'C:\BlobStore\FS2', MAXSIZE = 100 MB)
LOG ON (
NAME = N'BlobStore1_log',
FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
SIZE = 100 MB,
MAXSIZE = 1 GB,
FILEGROWTH = 1 MB
);
GO
ALTER DATABASE [BlobStore1]
ADD FILE (
NAME = N'FS3',
FILENAME = N'C:\BlobStore\FS3',
MAXSIZE = 100 MB
) TO FILEGROUP [FS];
GO
Связанный контент
- Изменить базу данных (Transact-SQL)
- Отсоединение базы данных и подключение (SQL Server)
- DROP DATABASE (Transact-SQL)
- EVENTDATA (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)
- sp_detach_db
- sp_removedbreplication
- Моментальные снимки базы данных (SQL Server)
- Перемещение файлов базы данных
- Базы данных
- Данные больших двоичных объектов (BLOB-объекты) (SQL Server)
* База данных SQL *
База данных SQL
Обзор
В Базе данных SQL Azure эту инструкцию можно применить к серверу Azure SQL для создания отдельной базы данных или базы данных в эластичном пуле. При использовании оператора нужно указать имя базы данных, параметры сортировки, максимальный размер, выпуск, цель обслуживания, и, если это применимо, эластичный пул для новой базы данных. Также он позволяет создать базу данных в эластичном пуле. Кроме того, с его помощью можно создать копию базы данных на другом сервере Базы данных SQL.
Синтаксис
Создание базы данных
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-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' | 'GEOZONE' }
| 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'
| 'BC_DC_n'
| 'BC_Gen5_n'
| 'BC_M_n'
| 'GP_DC_n'
| 'GP_Fsv2_n'
| 'GP_Gen5_n'
| 'GP_S_Gen5_n'
| 'HS_DC_n'
| 'HS_Gen5_n'
| 'HS_S_Gen5_n'
| 'HS_MOPRMS_n'
| 'HS_PRMS_n'
| { 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_Gen5_n'
| 'GP_Fsv2_n'
| 'GP_S_Gen5_n'
| 'BC_Gen5_n'
| 'BC_M_n'
| 'HS_Gen5_n'
| 'HS_S_Gen5_n'
| 'HS_PRMS_n'
| 'HS_MOPRMS_n'
| { ELASTIC_POOL(name = <elastic_pool_name>) } } )
]
[ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' } ) ]
[ ; ]
Аргументы
database_name
Имя новой базы данных. Имя должно быть уникальным в пределах SQL Server и соответствовать правилам SQL Server для идентификаторов. Дополнительные сведения см. в разделе "Идентификаторы базы данных".
collation_name
Задает параметры сортировки по умолчанию для данных базы данных. Укажите CATALOG_COLLATION для системных метаданных, таких как идентификаторы объектов.
Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если это не указано, база данных назначается параметры сортировки по умолчанию, то есть SQL_Latin1_General_CP1_CI_AS.
Дополнительные сведения о именах параметров сортировки Windows и SQL см. в collATE.
CATALOG_COLLATION
Задает параметры сортировки по умолчанию для каталога метаданных. Аргумент CATALOG_COLLATION доступен только во время создания базы данных и не может быть изменен после создания.
По умолчанию каталог метаданных для имен системных объектов сопоставляется с SQL_Latin1_General_CP1_CI_AS параметрами сортировки. Это параметр по умолчанию в Базе данных SQL Azure, если CATALOG_COLLATION не указано.
DATABASE_DEFAULT указывает, что каталог метаданных, используемый для системных представлений и системных таблиц, сопоставляется с параметрами сортировки базы данных. Если требуется, чтобы идентификаторы объектов в системных метаданных следовали тому же параметров сортировки, что и данные, необходимо создать базу данных WITH CATALOG_COLLATION = DATABASE_DEFAULT.
Для данных и идентификаторов объектов могут потребоваться различные параметры сортировки. В следующем примере создается база данных с учетом регистра сортировки для данных строк, но для идентификаторов объектов используется параметры сортировки по умолчанию
SQL_Latin1_General_CP1_CI_ASбез учета регистра.CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS;Если требуется, чтобы данные и системные метаданные использовали одинаковые параметры сортировки, укажите
WITH CATALOG_COLLATION = DATABASE_DEFAULT. В следующем примере создается база данных с учетом регистра сортировки, которая используется для идентификаторов объектов.CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS WITH CATALOG_COLLATION = DATABASE_DEFAULT;
BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZONE' | "GEO" | 'GEOZONE' }
Указывает, как реплицируются восстановление на определенный момент времени и долгосрочное хранение резервных копий для базы данных. Геовосстановление или возможность восстановления после регионального сбоя доступна только при создании базы данных с GEO избыточностью хранилища резервных копий. Если явно не указано иное, базы данных, созданные с помощью T-SQL, используют такое геоизбыточное хранилище резервных копий.
Используйте GEOZONE для хранилища, избыточного по географическим зонам. Хранилище, избыточное между географическими зонами (GZRS), обеспечивает высочайший уровень защиты от зональных сбоев, а также региональных сбоев для любой рабочей нагрузки.
Чтобы обеспечить размещение данных при создании базы данных с помощью T-SQL, используйте LOCAL или ZONE в качестве входных данных для BACKUP_STORAGE_REDUNDANCY параметра.
При создании базы данных как копии другой базы данных с AS COPY OFпомощью , указание опций поддерживается и должно быть заключено в круглые скобки. Например, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.
РЕЕСТР = { ON | OFF }
Если задано значение ON, создается база данных реестра, в которой обеспечивается целостность всех пользовательских данных. В базе данных реестра можно создавать только таблицы реестра. Значение по умолчанию — OFF. Значение LEDGER параметра невозможно изменить после создания базы данных. Дополнительные сведения см. в разделе Настройка базы данных реестра.
МАКССАЙЗ
Указывает максимальный размер базы данных.
MAXSIZE должен быть допустимым для указанного EDITION уровня служб.
Ниже приведены поддерживаемые MAXSIZE значения и значения по умолчанию (D) для уровней служб.
Примечание.
Аргумент MAXSIZE не применяется к отдельным базам данных на уровне служб Гипермасштабирования. При необходимости базы данных уровня "Один уровень гипермасштабирования" растет до 128 ТБ. Служба базы данных SQL автоматически добавляет хранилище. Вам не нужно задать максимальный размер.
Модель DTU для отдельных или включенных в пул баз данных на сервере базы данных SQL
MAXSIZE |
Базовый | S0-S2 | S3-S12 | P1-P6 | P11-P15 1 |
|---|---|---|---|---|---|
| 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 ГБ | Н/П | Н/П | Н/П | Н/П | Да |
1 P11 и P15 позволяют MAXSIZE использовать до 4 ТБ с размером 1024 ГБ по умолчанию. P11 и P15 могут использовать до 4 ТБ включенного объема хранилища без дополнительной платы. На уровне MAXSIZE "Премиум" в настоящее время доступно более 1 ТБ в следующих регионах: восточная часть США, западная часть США, западная часть США, Вирджиния, Западная Европа, Центральная Европа, Центральная Германия, Восточная Азия, Восточная Япония, Восточная Австралия, Центральная Канада и Восточная Канада. Дополнительные сведения об ограничениях ресурсов для модели DTU см. в разделе " Ограничения ресурсов" для отдельных баз данных с помощью модели приобретения DTU — Базы данных SQL Azure.
Значение MAXSIZE модели DTU, если указано, должно быть допустимым значением, отображаемым в предыдущей таблице для указанного уровня служб.
Ограничения, такие как максимальный размер и tempdb размер данных в модели приобретения виртуальных ядер, см. в статьях по ограничениям ресурсов для отдельных баз данных или ограничений ресурсов для эластичных пулов.
Если при использовании модели виртуальных ядер значение MAXSIZE не задано, используется значение по умолчанию — 32 ГБ. Дополнительные сведения об ограничениях ресурсов для модели виртуальных ядер см. в разделе об ограничениях ресурсов виртуальных ядер.
ИЗДАНИЕ
Указывает уровень службы базы данных.
Отдельные базы данных и базы данных в пуле. Доступные значения: "Базовый", "Стандартный", "Премиум", "GeneralPurpose", "BusinessCritical" и "Гипермасштабирование".
Следующие правила применяются к MAXSIZE аргументам и EDITION аргументам:
Если
EDITIONзадано, ноMAXSIZEне указано, используется значение по умолчанию для выпуска. Например, еслиEDITIONзадано значение "Стандартный" иMAXSIZEне указано, значение MAX'SIZE автоматически устанавливается на 250 МБ.Если ни не
MAXSIZEEDITIONуказано,EDITIONто для параметра GeneralPurpose задано значение "GeneralPurpose" иMAXSIZEимеется значение 32 ГБ.
SERVICE_OBJECTIVE
Указывает размер вычислительных ресурсов и цель службы.
Для модели приобретения DTU:
S0,S1S2S3S4S6S7S9S12P1P2P4P6P11P15Для последней модели приобретения виртуальных ядер выберите уровень и укажите количество виртуальных ядер из предустановленного списка значений, где находится
nчисло виртуальных ядер. Ознакомьтесь с ограничениями ресурсов для отдельных баз данных или ограничений ресурсов для эластичных пулов.- Например:
-
GP_Gen5_8для общего назначения, подготовленных вычислений, серии Standard (5-го поколения), 8 виртуальных ядер. -
GP_S_Gen5_8для общего назначения, бессерверных вычислений, серии Standard (5-го поколения), 8 виртуальных ядер. -
HS_Gen5_8для гипермасштабирования, подготовленных вычислений, серии Standard (5-го поколения), 8 виртуальных ядер. -
HS_S_Gen5_8для гипермасштабирования, бессерверных вычислений, серии Standard (5-го поколения), 8 виртуальных ядер.
-
- Например:
Дополнительные сведения об описании целях служб и о размере, выпусках и комбинациях целей служб см. в разделе Уровни служб базы данных SQL Azure. Если указанный параметр SERVICE_OBJECTIVE не поддерживается EDITION, появится сообщение об ошибке. Чтобы изменить SERVICE_OBJECTIVE значение с одного уровня на другой (например, с S1 на P1), необходимо также изменить EDITION значение. Поддержка целей служб PRS была удалена.
ELASTIC_POOL (name = <имя_эластичного_пула>)
Применимо к: только отдельная или включенная в пул база данных. Не применяется к базам данных на уровне служб гипермасштабирования.
Чтобы создать базу данных в пуле эластичных баз данных, задайте для нее имя и укажите SERVICE_OBJECTIVEELASTIC_POOL имя пула. Дополнительные сведения см. в статье "Эластичные пулы" для управления и масштабирования нескольких баз данных в База данных SQL Azure.
КАК КОПИЯ [ source_server_name. ] source_database_name
Применимо к: только отдельная или включенная в пул база данных.
Используется AS COPY OF для копирования базы данных на тот же или другой сервер База данных SQL.
При создании базы данных в качестве копии другой базы данных поддерживается AS COPY OFуказание параметров и их следует упаковать в скобки. Например, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.
source_server_name
Имя сервера базы данных SQL, в котором находится исходная база данных. Этот параметр не является обязательным, если исходная и конечная базы данных расположены на одном сервере Базы данных SQL.
Примечание.
Аргумент
AS COPY OFне поддерживает полные уникальные доменные имена. Другими словами, если полное доменное имя сервера —serverName.database.windows.net, во время копирования базы данных используйте толькоserverName.<имя_исходной_базы>
Имя копируемой базы данных.
Замечания
Базы данных в Базе данных SQL Azure используют несколько параметров по умолчанию, устанавливаемых при создании базы данных. Дополнительные сведения об этих параметрах по умолчанию см. в списке значений в разделе DATABASEPROPERTYEX.
Параметр MAXSIZE позволяет ограничить размер базы данных. Если размер базы данных достигает ее значения MAXSIZE, выдается ошибка с кодом 40544. При этом нельзя вставлять или обновлять данные или создавать новые объекты (например, таблицы, хранимые процедуры, представления и функции). Однако можно по-прежнему читать и удалять данные, усекать и удалять таблицы и индексы, а также выполнять перестроение индексов. Затем можно изменить значение MAXSIZE на значение, превышающее текущий размер базы данных, или удалить некоторые данные, чтобы освободить место в хранилище. Задержка может достигать 15 минут, прежде чем вы сможете вставить новые данные.
Инструкция ALTER DATABASE (в Базе данных SQL Azure) позволяет позднее изменить значения размера, выпуска или целевого уровня службы.
Копии базы данных
Применимо к: только отдельная или включенная в пул база данных.
Копирование базы данных с помощью инструкции CREATE DATABASE — это асинхронная операция. Поэтому подключение к серверу базы данных SQL не требуется в течение полного периода процесса копирования. Инструкция CREATE DATABASE возвращает управление пользователю после создания записи в sys.databases, но до завершения операции копирования базы данных. Другими словами, инструкция CREATE DATABASE возвращает контроль, когда база данных все еще копируется.
- Наблюдение за процессом копирования на сервере базы данных SQL: запросите
percentage_completeстолбцы orreplication_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.
Внимание
По умолчанию копия базы данных создается с той же избыточностью хранилища резервных копий, что и у базы данных-источника.
Разрешения
Чтобы создать базу данных, имя входа должно быть одним из следующих субъектов:
- Субъект серверного уровня
- Администратор Microsoft Entra для логического сервера в 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_Gen5_8' ) ;
Создание копии базы данных
Пример создания копии базы данных.
Применимо к: только отдельная или включенная в пул база данных.
CREATE DATABASE escuela
AS COPY OF school;
Создание базы данных внутри пула эластичных БД
Создает новую базу данных в пуле с именем S3M100.
Применимо к: только отдельная или включенная в пул база данных.
CREATE DATABASE db1
(SERVICE_OBJECTIVE = ELASTIC_POOL (NAME = S3M100));
Создание копии базы данных на другом логическом сервере
В следующем примере создается копия db_original базы данных с именем db_copy в целевой объект службы общего назначения для одной базы данных. Это происходит вне зависимости от того, находится ли db_original в эластичном пуле и имеет ли эта база объем вычислительных ресурсов (цель обслуживания), заданный для одной базы данных.
Применимо к: только отдельная или включенная в пул база данных.
CREATE DATABASE db_copy
AS COPY OF <database>.db_original
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8');
В следующем примере создается копия базы данных db_original с именем db_copy в эластичном пуле с именем ep1. Это происходит вне зависимости от того, находится ли db_original в эластичном пуле и имеет ли эта база объем вычислительных ресурсов (цель обслуживания), заданный для одной базы данных. Если db_original находится в эластичном пуле с другим именем, то db_copy по-прежнему создается в ep1.
Применимо к: только отдельная или включенная в пул база данных.
CREATE DATABASE db_copy
AS COPY OF <database>.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';
Создание базы данных реестра
CREATE DATABASE MyLedgerDB (EDITION = 'GeneralPurpose')
WITH LEDGER = ON;
Создание в качестве копии базы данных при изменении параметров
В следующем примере задаются различные параметры для новой копии базы данных, включая другой уровень служб и параметры избыточности хранилища резервных копий. По умолчанию копия базы данных создается с теми же параметрами, что и исходная база данных.
CREATE DATABASE copy_testdb
AS COPY OF [test_db]
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');
Связанный контент
- sys.dm_database_copies (База данных Azure SQL)
- ALTER DATABASE (база данных Azure SQL)
- Ограничения ресурсов для отдельных баз данных с помощью модели приобретения DTU — База данных SQL Azure
- Ограничения ресурсов виртуальных ядер для отдельных баз данных
- Ограничения ресурсов виртуальных ядер для эластичных пулов
* Управляемый экземпляр SQL *
Управляемый экземпляр SQL Azure
Обзор
В Управляемом экземпляре SQL Azure эта инструкция используется для создания базы данных. При создании базы данных в управляемом экземпляре вы можете указать имя базы данных и параметры сортировки.
Синтаксис
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [ , ..n ] ]
[ ; ]
<with_options> ::=
{
LEDGER = { ON | OFF }
}
Внимание
Чтобы добавить файлы или настроить автономность для базы данных в управляемом экземпляре, используйте инструкцию ALTER DATABASE.
Для управляемых экземпляров SQL начальное MAXSIZE значение неявно устанавливается на текущий размер диска, и оно не изменяется автоматически при расширении размера диска на портале Azure. После расширения диска также следует расширить MAXSIZE с помощью ALTER DATABASE , чтобы избежать полных ошибок файла базы данных.
Аргументы
database_name
Имя новой базы данных. Имя должно быть уникальным в пределах SQL Server и соответствовать правилам SQL Server для идентификаторов. Дополнительные сведения см. в разделе "Идентификаторы базы данных".
collation_name
Задает параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если это не указано, база данных назначается параметры сортировки по умолчанию, то есть SQL_Latin1_General_CP1_CI_AS.
Дополнительные сведения о именах параметров сортировки Windows и SQL см. в collATE.
РЕЕСТР = { ON | OFF }
Если задано значение ON, создается база данных реестра, в которой обеспечивается целостность всех пользовательских данных. В базе данных реестра можно создавать только таблицы реестра. Значение по умолчанию — OFF. Значение LEDGER параметра невозможно изменить после создания базы данных. Дополнительные сведения см. в разделе Настройка базы данных реестра.
Замечания
Базы данных в Базе данных SQL Azure используют несколько параметров по умолчанию, устанавливаемых при создании базы данных. Дополнительные сведения об этих параметрах по умолчанию см. в списке значений в разделе DATABASEPROPERTYEX.
Внимание
Инструкция CREATE DATABASE должна быть единственной инструкцией в пакете Transact-SQL.
CREATE DATABASE имеет следующие ограничения:
Не удается определить файлы и файловые группы.
WITHпараметры не поддерживаются, за исключениемWITH LEDGER.Совет
В качестве решения можно использовать ALTER DATABASE после
CREATE DATABASE, чтобы задать параметры базы данных и (или) добавить файлы.
Разрешения
Чтобы создать базу данных, имя пользователя должно быть одним из следующих типов участников безопасности:
- Субъект серверного уровня
- Администратор Microsoft Entra для логического сервера в Azure
- Имя входа, являющееся членом роли базы данных dbcreator
Примеры
Базовый пример
Базовый пример создания базы данных.
CREATE DATABASE TestDB1;
Создание базы данных реестра
CREATE DATABASE MyLedgerDB
WITH LEDGER = ON;
Связанный контент
* Azure Synapse
Аналитика*
Azure Synapse Analytics
Обзор
В Azure Synapse эту инструкцию можно использовать с сервером Базы данных SQL Azure для создания выделенного пула SQL. Для этого оператора нужно указать имя базы данных, параметры сортировки, максимальный размер, выпуск и цель обслуживания.
-
CREATE DATABASEподдерживается для автономных выделенных пулов SQL (ранее — хранилище данных SQL) с использованием уровней обслуживания 2-го поколения. -
CREATE DATABASEне поддерживается для выделенных пулов SQL в рабочей области Azure Synapse Analytics. Вместо этого используйте портал Azure. -
CREATE DATABASEподдерживается для бессерверных пулов SQL в Azure Synapse Analytics.
Синтаксис
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
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 = {
'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.
МАКССАЙЗ
Значение по умолчанию — 245 760 ГБ (240 ТБ).
Область применения: оптимизация для вычислений Gen1
Максимально допустимый размер базы данных. База данных не может увеличиваться за рамки MAXSIZE.
Область применения: оптимизация для вычислений Gen2
Максимально допустимый размер данных rowstore в базе данных. Данные, хранящиеся в таблицах rowstore, разностное хранилище индекса columnstore или некластеризованный индекс в кластеризованном индексе columnstore не могут увеличиваться.MAXSIZE Данные, сжатые в формат columnstore, не имеют ограничения размера и не ограничиваются MAXSIZE.
ИЗДАНИЕ
Указывает уровень службы базы данных. Для Azure Synapse Analytics используйте datawarehouse.
SERVICE_OBJECTIVE
Определяет объем вычислительных ресурсов (цель обслуживания). Уровни обслуживания для 2-го поколения измеряются в вычислительных единицах использования хранилища данных (cDWU). Пример: DW2000c. Уровни службы 1-го поколения измеряются в DWU. Пример: DW2000. Подробные сведения о целях служб для Azure Synapse см. в статье о единицах использования хранилища данных (DWU). Цели службы 1-го поколения (больше не перечислены) больше не поддерживаются, вы можете получить сообщение об ошибке: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.
Замечания
Используйте DATABASEPROPERTYEX, чтобы просмотреть свойства базы данных.
Инструкция ALTER DATABASE в Azure Synapse Analytics позволяет позднее изменить значения максимального размера или целевого уровня службы.
Для Azure Synapse задано COMPATIBILITY_LEVEL 130 значение и не может быть изменено. Дополнительные сведения см. на уровне совместимости ALTER DATABASE.
Разрешения
Необходимые разрешения:
- имя входа субъекта серверного уровня, созданное процессом подготовки или
- Член роли базы данных dbmanager .
Обработка ошибок
Если размер базы данных достигается MAXSIZE, SQL Server вызывает код ошибки 40544. При этом нельзя вставлять и обновлять данные или создавать новые объекты (например, таблицы, хранимые процедуры, представления и функции). Вы по-прежнему можете считывать и удалять данные, усекать и удалять таблицы и индексы, а также выполнять перестроение индексов. Затем можно изменить значение MAXSIZE на значение, превышающее текущий размер базы данных, или удалить некоторые данные, чтобы освободить место в хранилище. Перед возобновлением возможности вставлять новые данные может пройти до 15 минут.
Ограничения
Для создания новой базы данных необходимо подключение к базе данных master.
Инструкция CREATE DATABASE должна быть единственной инструкцией в пакете Transact-SQL.
После создания базы данных невозможно изменить параметры сортировки базы данных.
Примеры: Azure Synapse Analytics
А. Базовый пример
Базовый пример создания автономного выделенного пула SQL (ранее — хранилище данных SQL). В примере создается база данных с наименьшим максимальным размером (10 240 ГБ), параметром сортировки по умолчанию (SQL_Latin1_General_CP1_CI_AS) и наименьшим целевым показателем службы 2-го поколения (DW100c).
CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW100c');
В. Создание базы данных хранилища данных со всеми параметрами
Пример создания изолированного выделенного пула SQL (прежнее название — хранилище данных SQL) размером в 10 ТБ.
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');
В. Базовый пример в бессерверном пуле SQL Synapse Analytics
При этом база данных создается в бессерверном пуле с указанием параметров сортировки (Latin1_General_100_CI_AS_KS_WS).
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS;
Связанный контент
* Система платформы аналитики
(PDW) *
Система платформы аналитики
Обзор
В Analytics Platform System эта инструкция создает базу данных на устройстве под управлением Analytics Platform System. Используйте эту инструкцию, чтобы создать все файлы, связанные с базой данных устройства, и задать максимальный размер и параметры автоматического увеличения для таблицы базы данных и журнала транзакций.
Синтаксис
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
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
Имя новой базы данных. Дополнительные сведения о разрешенных именах баз данных см. в разделе "Правила именования объектов" и "Зарезервированные имена баз данных" в документации по Analytics Platform System (PDW).
AUTOGROW = { ON | OFF }
Указывает, будут ли параметры replicated_size, distributed_size и log_size автоматически увеличиваться по мере необходимости за пределы указанных размеров. Значение по умолчанию: OFF.
Если AUTOGROW это ONreplicated_size, distributed_size и log_size расти по мере необходимости при каждом вставке, обновлении или другом действии, требующее больше хранилища, чем уже выделено.
Если AUTOGROW это OFFтак, размеры не растут автоматически. Система платформы аналитики (PDW) возвращает ошибку при попытке действия, требующего replicated_size, distributed_size или log_size для увеличения до указанного значения.
AUTOGROW
ON имеет значение для всех размеров или OFF для всех размеров. Например, невозможно задать AUTOGROW ONдля log_size, но не задать его для replicated_size.
replicated_size [ ГБ ]
Положительное число. Задает размер (в виде целого или десятичного числа гигабайт) всего пространства, выделенного для реплицированных таблиц и соответствующих данных на каждом вычислительном узле. Требования к минимальному и максимальному значениям replicated_size см. в разделе "Минимальные и максимальные значения" в документации по продукту Analytics Platform System (PDW).
Если AUTOGROW это ONтак, реплицированные таблицы могут увеличиваться за рамки этого ограничения.
Если AUTOGROW это OFFтак, ошибка возвращается, если пользователь пытается создать реплицированную таблицу, вставить данные в существующую реплицированную таблицу или обновить реплицированную таблицу таким образом, чтобы увеличить размер за пределами replicated_size.
distributed_size [ ГБ ]
Положительное число. Размер (в виде целого или десятичного числа гигабайт) всего пространства, выделенного для распределенных таблиц и соответствующих данных на устройстве. Требования к минимальному и максимальному значениям distributed_size см. в разделе "Минимальные и максимальные значения" в документации по продукту Analytics Platform System (PDW).
Если AUTOGROW это ONтак, распределенные таблицы могут увеличиваться за пределы этого ограничения.
Если AUTOGROW это OFFтак, ошибка возвращается, если пользователь пытается создать распределенную таблицу, вставить данные в существующую распределенную таблицу или обновить существующую распределенную таблицу таким образом, чтобы увеличить размер за пределами distributed_size.
log_size [ ГБ ]
Положительное число. Размер (в виде целого или десятичного числа гигабайт) для журнала транзакций на устройстве.
Требования к минимальному и максимальному значениям log_size см. в разделе "Минимальные и максимальные значения" в документации по продукту Analytics Platform System (PDW).
Если AUTOGROW это ONтак, файл журнала может увеличиваться за пределы этого ограничения. Используйте инструкцию DBCC SHRINKLOG — Analytics Platform System (PDW), чтобы уменьшить размер файлов журнала до исходного размера.
Если 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 не допускается в явной транзакции. Дополнительные сведения см. вTransact-SQL инструкциях.
Требования к минимальному и максимальному значениям для баз данных см. в разделе "Минимальные и максимальные значения" в документации по продукту Analytics Platform System (PDW).
Во время создания базы данных должно быть достаточно свободного места на каждом вычислительном узле для распределения общей суммы следующих размеров:
- База данных SQL Server с таблицами размера replicated_table_size.
- База данных SQL Server с таблицами размера (distributed_table_size / количество вычислительных узлов).
- Журналы SQL Server размера (log_size / количество вычислительных узлов).
Блокировка
Принимает совмещаемую блокировку для объекта DATABASE.
Метаданные
После успешной операции запись для этой базы данных отображается в представлениях метаданных sys.database и sys.objects .
Примеры: система платформы аналитики (PDW)
А. Примеры создания базовых баз данных
В следующем примере создается база данных 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);