Синтаксис CREATE DATABASE database_name [ CONTAINMENT

advertisement
Синтаксис
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 }
}
<filestream_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
| DIRECTORY_NAME = 'directory_name'
}
To attach a database
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
| ATTACH_REBUILD_LOG }
[;]
<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 ]
<filespec> [ ,...n ]
}
<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 a database snapshot
CREATE DATABASE database_snapshot_name
ON
(
NAME = logical_file_name,
FILENAME = 'os_file_name'
) [ ,...n ]
AS SNAPSHOT OF source_database_name
[;]
Аргументы
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
= частично автономная база данных.
ON
Указывает, что дисковые файлы, используемые для хранения разделов данных в базе
данных, определяются явно. Параметр ON необходимо применять, если за ним следует
список элементов <filespec> с разделителями-запятыми, которые определяют файлы
данных первичной файловой группы. За списком файлов в первичной файловой группе
может следовать необязательный список элементов <filegroup> с разделителями-запятыми,
которые определяют файловые группы пользователей и принадлежащие им файлы.
PRIMARY
Указывает, что связанный список <filespec> определяет первичный файл. Первый файл,
указанный в элементе <filespec> в первичной файловой группе, становится первичным
файлом. В базе данных может быть только один первичный файл.
Если параметр PRIMARY не указан, то первый файл списка в инструкции CREATE DATABASE
становится первичным файлом.
LOG ON
Указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть
файлы журналов, определяются явно. За параметром LOG ON следует список элементов
<filespec> с разделителями-запятыми, которые определяют файлы журналов. Если параметр
LOG ON не указан, автоматически создается один файл журнала, размер которого
определяется большей из следующих двух величин: 512 КБ или 25 процентов от суммы
размеров всех файлов с данными в базе данных. Этот файл помещается в местоположение
для журнала по умолчанию. Сведения об этом местоположении см. в разделе Просмотр или
изменение расположения по умолчанию для файлов данных и журнала (среда SQL Server
Management Studio).
Параметр LOG ON не может указываться для моментального снимка базы данных.
COLLATE collation_name
Задает параметры сортировки по умолчанию для базы данных. Именем параметров
сортировки может быть либо имя параметров сортировки Windows, либо имя параметров
сортировки SQL.Если параметр не указан, базе данных назначаются параметры сортировки
по умолчанию для экземпляра SQL Server. Имя параметров сортировки не может
указываться для моментального снимка базы данных.
Имя параметров сортировки не может указываться с предложениями FOR ATTACH и FOR
ATTACH_REBUILD_LOG. Дополнительные сведения о способах изменения параметров
сортировки подсоединенной базы данных см. на веб-сайте корпорации Майкрософт.
WITH <option>
 <filestream_options>
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
Указывает уровень нетранзакционного доступа FILESTREAM к базе данных.
Следующие параметры разрешаются, только если параметр CONTAINMENT установлен в
состояние PARTIAL. Если параметр CONTAINMENT установлен в состояние NONE, возникнут
ошибки.
 DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <language name> | <language alias>
Полное описание этого параметра см. в разделе Настройка параметра
конфигурации сервера «язык полнотекстового поиска по умолчанию».
 DEFAULT_LANGUAGE = <lcid> | <language name> | <language alias>
Полное описание этого параметра см. в разделе Настройка параметра
конфигурации сервера «язык по умолчанию».
 NESTED_TRIGGERS = { OFF | ON}
Полное описание этого параметра см. в разделе Настройка конфигурации сервера
nested triggers.
 TRANSFORM_NOISE_WORDS = { OFF | ON}
Полное описание этого параметра см. в разделе Параметр конфигурации сервера
«transform noise words».
 TWO_DIGIT_YEAR_CUTOFF = { 2049 | <любой год от 1753 до 9999> }
Четыре цифры, обозначающие год. Значение по умолчанию — 2049. Полное
описание этого параметра см. в разделе Настройка параметра конфигурации
сервера two digit year cutoff.
 DB_CHAINING { OFF | ON }
Если указано значение ON, то база данных может быть источником или целевой
базой данных в межбазовой цепочке владения.
Если задано значение OFF, то база данных не может участвовать в межбазовых
цепочках владения. Значение по умолчанию — OFF.
Для задания этого параметра необходимо членство в предопределенной роли
сервера sysadmin. Параметр DB_CHAINING нельзя установить для системных баз
данных: master, model, tempdb.
 TRUSTWORTHY { OFF | ON }
Если задано значение ON, то модули базы данных (например, представления,
определяемые пользователем функции и хранимые процедуры), в которых
используется контекст олицетворения, могут обращаться к ресурсам,
расположенным за пределами базы данных.
Если задано значение OFF, то модули базы данных в контексте олицетворения не
могут обращаться к ресурсам, расположенным за пределами базы данных. Значение
по умолчанию — OFF.
Параметр TRUSTWORTHY устанавливается в значение OFF при каждом
присоединении базы данных.
По умолчанию для всех системных баз данных, кроме msdb, параметру
TRUSTWORTHY задано значение OFF. Это значение не может быть изменено для баз
данных model и tempdb.Рекомендуется никогда не задавать параметру
TRUSTWORTHY значение ON для базы данных master.
Для задания этого параметра необходимо членство в предопределенной роли
сервера sysadmin.
FOR ATTACH [ WITH < параметр_присоединения_базы_данных > ]
Указывает, что база данных создана путем присоединения существующего набора файлов
операционной системы. Должен существовать элемент <filespec>, который указывает
первичный файл.Кроме этого элемента, необходимы только элементы <filespec>,
предназначенные для файлов, пути которых отличны от путей, существовавших при
создании или последнем присоединении базы данных. Для таких файлов должен быть
определен элемент <filespec>.
Для параметра FOR ATTACH необходимо выполнение следующих условий.
 Должны быть доступны все файлы данных (MDF и NDF).
 Если существует несколько файлов журналов, все они должны быть доступны.
Если база данных, доступная для чтения и записи, располагает единственным файлом
журнала, который недоступен в текущий момент, а также если база данных была закрыта в
отсутствие пользователей или открытых транзакций перед операцией присоединения, то
параметр FOR ATTACH автоматически перестраивает файл журнала и обновляет первичный
файл. Однако журнал невозможно перестроить в базе данных, доступной только для чтения,
так как нельзя обновить первичный файл. Поэтому, если присоединяется база данных
только для чтения, журнал которой недоступен, необходимо указать в предложении FOR
ATTACH файлы журнала или файлы.
В 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>:
<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 для удаления
репликации по завершении операции подключения.
При первом присоединении базы данных к новому экземпляру SQL Server или ее
восстановлении копия главного ключа базы данных (зашифрованная главным ключом
службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы
данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных
будет расшифрован, появится возможность разрешить автоматическую расшифровку в
будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на
сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа
службы. После обновления базы данных с переходом от более ранней версии главный ключ
базы данных должен быть создан повторно для использования нового алгоритма
шифрования AES. Дополнительные сведения о повторном создании главного ключа базы
данных см. в разделе ALTER MASTER KEY (Transact-SQL). Время, необходимое для повторного
создания главного ключа базы данных с обновлением до алгоритма шифрования AES,
зависит от числа объектов, защищаемых главным ключом базы данных.Повторное создание
главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо
произвести только один раз. Это никак не повлияет на последующие операции повторного
создания, выполняемые в соответствии со стратегией смены ключей. Сведения об
обновлении базы данных с помощью присоединения см. в разделе обновить базу данных
при помощи отсоединения и присоединения (Transact-SQL).
Примечания по безопасности. Рекомендуется не присоединять базы данных, полученные
из неизвестных или ненадежных источников. В этих базах данных может содержаться
вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL
или появление ошибок из-за изменения схемы или физической структуры базы
данных. Перед тем как использовать базу данных, полученную из ненадежного источника,
выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также
изучите исходный код в базе данных, например хранимые процедуры и другой
пользовательский код.
FOR ATTACH_REBUILD_LOG
Указывает, что база данных создана путем присоединения существующего набора файлов
операционной системы. Этот параметр применяется только в базах данных, доступных для
чтения и записи. Должна существовать запись <filespec>, указывающая первичный
файл. Если один или несколько файлов журналов транзакций отсутствуют, то файл журнала
перестраивается. Параметр ATTACH_REBUILD_LOG автоматически создает новый файл
журнала с размером 1 МБ. Этот файл помещается в местоположение для журнала по
умолчанию. Сведения об этом местоположении см. в разделе Просмотр или изменение
расположения по умолчанию для файлов данных и журнала (среда SQL Server Management
Studio).
Для параметра FOR ATTACH_REBUILD_LOG необходимо следующее.
 Чистое завершение работы базы данных.
 Должны быть доступны все файлы данных (MDF и NDF).
Как правило, параметр 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
использует размер первичного файла в базе данных model. Если указан вторичный файл
данных или журнала, но параметр size для файла не указан, компонент Компонент Database
Engine задает размер файла равным 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 ТБ.
FILEGROWTH growth_increment
Задает автоматический шаг роста файла. Значение параметра FILEGROWTH для файла не
может превосходить значение параметра MAXSIZE. Параметр FILEGROWTH нельзя
указывать, если аргумент os_file_name задан как путь в формате UNC. Свойство FILEGROWTH
к файловой группе FILESTREAM не применяется.
growth_increment
Объем пространства, добавляемого к файлу каждый раз, когда требуется увеличение
пространства.
Значение может быть указано в килобайтах, мегабайтах, гигабайтах, терабайтах или
процентах (%). Если указано число без суффикса MB, KB или %, то по умолчанию
используется MB. Если размер указан в процентах (%), то шаг роста это заданная часть в
процентах от размера файла во время этого файла. Указанный размер округляется до
ближайших 64 КБ.
Значение 0 указывает, что автоматическое приращение отключено и добавление
пространства запрещено.
Если параметр FILEGROWTH не задан, значением по умолчанию является 1 МБ для файлов
данных и 10% для файлов журналов, минимальное значение — 64 КБ.
<filegroup>
Управляет свойствами файловой группы. Файловая группа не может указываться для
моментального снимка базы данных.
FILEGROUP filegroup_name
Логическое имя файловой группы.
filegroup_name
Аргумент filegroup_name должен быть уникальным в базе данных и не может быть именем
PRIMARY или PRIMARY_LOG, предоставленным системой. Имя может быть символом или
константой Юникода, а также обычным идентификатором или идентификатором с
разделителями. Имя должно соответствовать правилам для идентификаторов.
CONTAINS FILESTREAM
Указывает, что файловая группа хранит большие двоичные объекты (BLOB) FILESTREAM в
файловой системе.
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>.
AS SNAPSHOT OF source_database_name
Обозначает, что создаваемая база данных является моментальным снимком базы данныхисточника, указанной аргументом source_database_name. Моментальный снимок и база
данных-источник должны находиться в одном экземпляре.
Дополнительные сведения см. в подразделе «Моментальные снимки базы данных» раздела
«Примечания».
Подробнее http://msdn.microsoft.com/ru-ru/library/ms176061.aspx
Download