что делает create database
Что делает create database
CREATE DATABASE — создать базу данных
Синтаксис
Описание
Параметры
Имя создаваемой базы данных. имя_пользователя
Порядок сортировки ( LC_COLLATE ), который будет использоваться в новой базе данных. Этот параметр определяет порядок сортировки строк, например, в запросах с ORDER BY, а также порядок индексов по текстовым столбцам. По умолчанию используется порядок сортировки, установленный в шаблоне. Дополнительные ограничения описаны ниже. категория_типов_символов
Классификация символов ( LC_CTYPE ), которая будет применяться в новой базе данных. Этот параметр определяет принадлежность символов категориям, например: строчные, заглавные, цифры и т. п. По умолчанию используется классификация символов, установленная в шаблоне. Дополнительные ограничения описаны ниже. табл_пространство
Если false, никто не сможет подключаться к этой базе данных. По умолчанию имеет значение true, то есть подключения принимаются (если не ограничиваются другими механизмами, например, GRANT / REVOKE CONNECT ). предел_подключений
Если true, базу данных сможет клонировать любой пользователь с правами CREATEDB ; в противном случае (по умолчанию), клонировать эту базу смогут только суперпользователи и её владелец.
Дополнительные параметры могут записываться в любом порядке, не обязательно так, как показано выше.
Замечания
CREATE DATABASE нельзя выполнять внутри блока транзакции.
Программа createdb представляет собой оболочку этой команды, созданную ради удобства.
Конфигурационные параметры уровня базы данных (устанавливаемые командой ALTER DATABASE ) и разрешения уровня базы (устанавливаемые командой GRANT ) из шаблона не копируются.
Кодировка символов, указанная для новой базы данных, должна быть совместима с выбранными параметрами локали ( LC_COLLATE и LC_CTYPE ). Если выбрана локаль C (или равнозначная ей POSIX ), допускаются все кодировки, но для других локалей правильно будет работать только одна кодировка. (В Windows, однако, кодировку UTF-8 можно использовать с любой локалью.) CREATE DATABASE позволяет суперпользователям указать кодировку SQL_ASCII вне зависимости от локали, но этот вариант считается устаревшим и может привести к ошибочному поведению строковых функций, если в базе хранятся данные в кодировке, несовместимой с заданной локалью.
Примеры
Создание базы данных:
Создание базы данных music с кодировкой ISO-8859-1:
Совместимость
Оператор CREATE DATABASE отсутствует в стандарте SQL. Базы данных равнозначны каталогам, а их создание в стандарте определяется реализацией.
Что делает create database
CREATE DATABASE — создать базу данных
Синтаксис
Описание
Параметры
Имя создаваемой базы данных. имя_пользователя
Классификация символов ( LC_CTYPE ), которая будет применяться в новой базе данных. Этот параметр определяет принадлежность символов категориям, например: строчные, заглавные, цифры и т. п. По умолчанию используется классификация символов, установленная в шаблоне. Дополнительные ограничения описаны ниже. табл_пространство
Если false, никто не сможет подключаться к этой базе данных. По умолчанию имеет значение true, то есть подключения принимаются (если не ограничиваются другими механизмами, например, GRANT / REVOKE CONNECT ). предел_подключений
Если true, базу данных сможет клонировать любой пользователь с правами CREATEDB ; в противном случае (по умолчанию), клонировать эту базу смогут только суперпользователи и её владелец.
Дополнительные параметры могут записываться в любом порядке, не обязательно так, как показано выше.
Замечания
CREATE DATABASE нельзя выполнять внутри блока транзакции.
Программа createdb представляет собой оболочку этой команды, созданную ради удобства.
Конфигурационные параметры уровня базы данных (устанавливаемые командой ALTER DATABASE ) и разрешения уровня базы (устанавливаемые командой GRANT ) из шаблона не копируются.
Кодировка символов, указанная для новой базы данных, должна быть совместима с выбранными параметрами локали ( LC_COLLATE и LC_CTYPE ). Если выбрана локаль C (или равнозначная ей POSIX ), допускаются все кодировки, но для других локалей правильно будет работать только одна кодировка. (В Windows, однако, кодировку UTF-8 можно использовать с любой локалью.) CREATE DATABASE позволяет суперпользователям указать кодировку SQL_ASCII вне зависимости от локали, но этот вариант считается устаревшим и может привести к ошибочному поведению строковых функций, если в базе хранятся данные в кодировке, несовместимой с заданной локалью.
Примеры
Создание базы данных:
Создание базы данных music с другой локалью:
Создание базы данных music2 с другой локалью и другой кодировкой символов:
Свойства кодировки должны соответствовать локали, иначе возникнет ошибка.
Заметьте, что имена локалей зависят от операционной системы, так что показанные выше команды могут не везде работать одинаково.
Совместимость
Оператор CREATE DATABASE отсутствует в стандарте SQL. Базы данных равнозначны каталогам, а их создание в стандарте определяется реализацией.
Создание базы данных
В этой статье описывается создание базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
Сведения о создании базы данных в службе Базы данных SQL Azure с помощью T-SQL см. в статье CREATE DATABASE (база данных SQL Azure).
Ограничения
Предварительные требования
Рекомендации
Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.
При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
безопасность
Permissions
Требуется разрешение CREATE DATABASE в базе данных master или разрешение CREATE ANY DATABASE или ALTER ANY DATABASE.
Чтобы сохранить контроль над использованием диска в экземпляре SQL Server, разрешение на создание баз данных обычно предоставляется небольшому числу имен входа SQL Server.
Использование среды SQL Server Management Studio
Создание базы данных
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.
Щелкните правой кнопкой мыши узел Базы данных и выберите команду Создать базу данных.
В поле Новая база данных введите имя базы данных.
Чтобы создать базу данных, приняв все значения по умолчанию, нажмите кнопку ОК; в противном случае продолжайте выполнять указанные ниже дополнительные действия.
Чтобы изменить имя владельца, нажмите ( … ) и выберите другого владельца.
Параметр Использовать полнотекстовое индексирование всегда установлен и недоступен (т. к. начиная с SQL Server 2008все пользовательские базы данных поддерживают полнотекстовый поиск).
Чтобы изменить значения первичных данных по умолчанию и файлы журнала транзакций, выберите соответствующую ячейку в сетке Файлы базы данных и введите новое значение. Дополнительные сведения см. в статье AДобавление файлов данных или журналов в базу данных.
Чтобы изменить параметры сортировки базы данных, выберите страницу Параметры и выберите из списка желаемые параметры сортировки.
Чтобы изменить модель восстановления, выберите страницу Параметры и модель восстановления из списка.
Чтобы изменить параметры базы данных, выберите страницу Параметры и измените параметры базы данных. Описание каждого параметра см. в статье Параметры ALTER DATABASE SET (Transact-SQL).
Чтобы добавить новую файловую группу, перейдите на страницу Файловые группы. Нажмите кнопку Добавить и введите значения для файловой группы.
В столбце Имя введите имя расширенного свойства.
В столбце Значение введите текст расширенного свойства. Например, введите одно или несколько предложений, которые описывают базу данных.
Чтобы создать базу данных, нажмите кнопку ОК.
Использование Transact-SQL
Создание базы данных
Установите соединение с компонентом Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Метод Workspace.CreateDatabase (DAO)
Область применения: Access 2013, Office 2013
Создает новый объект Database, сохраняет базу данных на диск и возвращает открытый объект Database (только рабочие пространства Microsoft Access).
Синтаксис
expression: переменная, представляющая объект Workspace.
Параметры
String
Строка длиной до 255 символов — это имя создаемого файла базы данных. Это может быть полный путь и имя файла. Если сеть поддерживает ее, можно также указать сетевой путь, например » \\ server1\share1\dir1\db1. » С помощью этого метода можно создавать только файлы базы данных Microsoft Access.
String
Строка, указывающий порядок создания базы данных, как указано в Параметры. Необходимо предоставить этот аргумент или возникает ошибка.
Вы также можете создать пароль для нового объекта Database, соединив строку пароля (начиная с ;p wd=) с константой в аргументе » » locale, как это:
dbLangSpanish & » ;p wd=NewPassword»
Если вы хотите использовать локализ по умолчанию,но укажите пароль, просто введите строку пароля для аргумента locale:
Используйте надежные пароли, содержащие строчные и прописные буквы, цифры и знаки. В ненадежных паролях не используются сочетания таких элементов. Надежный пароль: Y6dh!et5. Слабый пароль: House27. Используйте надежный пароль, который можно запомнить, чтобы не пришлось его записывать.
Variant
Константа или сочетание констант, которые указывают один или несколько параметров, как указано в Параметры. Вы можете объединить параметры, сложив соответствующие константы.
Комментарии
Для аргумента locale можно использовать одну из следующих констант, чтобы указать свойство CollatingOrder текста для сравнения строк.
dbLangGeneral
Английский, немецкий, французский, португальский, итальянский и современный испанский
dbLangArabic
dbLangChineseSimplified
Китайский (упрощенное письмо)
dbLangChineseTraditional
Китайский (традиционное письмо)
dbLangCyrillic
dbLangCzech
dbLangDutch
dbLangGreek
dbLangHebrew
dbLangHungarian
dbLangIcelandic
dbLangJapanese
dbLangKorean
dbLangNordic
Скандинавские языки (только ядро СУБД Microsoft Jet версии 1.0)
dbLangNorwDan
Норвежский и датский
dbLangPolish
dbLangSlovenian
dbLangSpanish
dbLangSwedFin
Шведский и финский
dbLangThai
dbLangTurkish
В аргументе параметров можно использовать одну или несколько следующих констант, чтобы указать, какая версия должна иметь формат данных и следует ли шифровать базу данных.
dbEncrypt
Создает зашифрованную базу данных.
dbVersion10
Создает базу данных, использующую формат файла версии 1.0 для двигателя базы данных Microsoft Jet.
dbVersion11
Создает базу данных с использованием формата файловой версии 1.1 базы данных Microsoft Jet.
dbVersion20
Создает базу данных, использующую формат файла версии 2.0 для базы данных Microsoft Jet.
dbVersion30
Создает базу данных, использующую файловый формат 3.0 версии базы данных Microsoft Jet (совместим с версией 3.5).
dbVersion40
Создает базу данных, использующую формат файловой базы данных Microsoft Jet версии 4.0.
dbVersion120
Создает базу данных, использующую формат файла версии 12.0 для базы данных Microsoft Access.
Если опустить константу шифрования, CreateDatabase создаст нешифроварованную базу данных.
Используйте метод CreateDatabase для создания и открытия новой пустой базы данных и возврата объекта Database. Необходимо завершить его структуру и контент с помощью дополнительных объектов DAO. Если вы хотите сделать частичную или полную копию существующей базы данных, вы можете использовать метод CompactDatabase, чтобы сделать копию, которую можно настроить.
Пример
В этом примере используется метод CreateDatabase для создания нового зашифрованного объекта Database.
CREATE DATABASE
Создает новую базу данных.
Щелкните одну из следующих вкладок, чтобы изучить синтаксис, аргументы, примечания, разрешения и примеры для используемой вам версии SQL.
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
Выберите продукт
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
* SQL Server *
SQL Server
Обзор
В SQL Server эта инструкция создает базу данных, используемые для нее файлы и их файловые группы. Также она позволяет создать моментальный снимок базы данных или подключить файлы для создания базы данных из отсоединенных файлов другой базы данных.
Синтаксис
Создание базы данных
Присоединение базы данных
Создание моментального снимка базы данных
Аргументы
database_name — имя новой базы данных. Имена баз данных должны быть уникальны внутри экземпляра SQL Server и должны соответствовать правилам для идентификаторов.
Аргумент database_name может иметь максимальную длину 128 символов, если для файла журнала не указано логическое имя. Если логическое имя файла не указано, то SQL Server формирует для журнала имена logical_file_name и os_file_name путем добавления суффикса к database_name. Это ограничивает длину аргумента database_name 123 символами, чтобы формируемое логическое имя файла было не длиннее 128 символов.
Область применения: SQL Server 2012 (11.x) и более поздних версий
Указывает состояние включения базы данных. NONE = неавтономная база данных. PARTIAL = частично автономная база данных.
ON — указывает, что дисковые файлы, используемые для хранения разделов данных в базе данных (файлы данных), определяются явно. Параметр ON необходимо применять, если за ним следует список элементов с разделителями-запятыми, которые определяют файлы данных первичной файловой группы. За списком файлов в первичной файловой группе может следовать необязательный список элементов с разделителями-запятыми, которые определяют файловые группы пользователей и принадлежащие им файлы.
PRIMARY — указывает, что связанный список определяет первичный файл. Первый файл, указанный в элементе в первичной файловой группе, становится первичным файлом. В базе данных может быть только один первичный файл. Дополнительные сведения см. в статье Файлы и группы файлов базы данных.
Если параметр PRIMARY не указан, то первый файл списка в инструкции CREATE DATABASE становится первичным файлом.
LOG ON — указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть файлы журналов, определяются явно. За параметром LOG ON следует список элементов с разделителями-запятыми, которые определяют файлы журналов. Если параметр LOG ON не указан, автоматически создается один файл журнала, размер которого определяется большей из следующих двух величин: 512 КБ или 25 процентов от суммы размеров всех файлов данных в базе данных. Этот файл помещается в местоположение для журнала по умолчанию. См. дополнительные сведения об этом расположении.
Параметр LOG ON не может указываться для моментального снимка базы данных.
COLLATE collation_name — определяет параметры сортировки по умолчанию для базы данных. Именем параметров сортировки может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если параметр не указан, базе данных назначаются параметры сортировки по умолчанию для экземпляра SQL Server. Имя параметров сортировки не может указываться для моментального снимка базы данных.
Имя параметров сортировки не может указываться с предложениями FOR ATTACH и FOR ATTACH_REBUILD_LOG. Дополнительные сведения о способах изменения параметров сортировки подсоединенной базы данных см. на веб-сайте корпорации Майкрософт.
Список имен параметров сортировки Windows и SQL см. в статье Параметры сортировки.
Сортировка в автономных базах данных отличается от неавтономных баз данных. Дополнительные сведения см. в разделе Параметры сортировки автономной базы данных.
NON_TRANSACTED_ACCESS = < OFF | READ_ONLY | FULL > Применимо к: SQL Server 2012 (11.x) и выше.
Указывает уровень нетранзакционного доступа FILESTREAM к базе данных.
Значение | Описание |
---|---|
OFF | Нетранзакционный доступ отключен. |
READONLY | Данные FILESTREAM в этой базе данных могут быть считаны нетранзакционными процессами. |
FULL | Полный нетранзакционный доступ к FILESTREAM FileTable включен. |
DIRECTORY_NAME = применимо к SQL Server 2012 (11.x) и более новым версиям
Имя каталога, совместимое с Windows. Это имя должно быть уникально среди всех имен Database_Directory в экземпляре SQL Server. Проверка уникальности выполняется с учетом регистра, независимо от параметров сортировки SQL Server. Этот параметр необходимо назначить до создания FileTable в этой базе данных.
Следующие параметры разрешаются, только если параметр CONTAINMENT установлен в состояние PARTIAL. Если параметр CONTAINMENT установлен в состояние NONE, возникнут ошибки.
DEFAULT_FULLTEXT_LANGUAGE = | |
Область применения: SQL Server 2012 (11.x) и более поздних версий
DEFAULT_LANGUAGE = | |
Область применения: SQL Server 2012 (11.x) и более поздних версий
Область применения: SQL Server 2012 (11.x) и более поздних версий
Область применения: SQL Server 2012 (11.x) и более поздних версий
TWO_DIGIT_YEAR_CUTOFF = < 2049 | >
Четыре цифры, обозначающие год. Значение по умолчанию — 2049. Полное описание этого параметра см. в статье Настройка параметра конфигурации сервера two digit year cutoff.
Если указано значение ON, то база данных может быть источником или целевой базой данных в межбазовой цепочке владения.
Если задано значение OFF, то база данных не может участвовать в межбазовых цепочках владения. Значение по умолчанию — OFF.
Экземпляр SQL Server распознает эту настройку, если параметр сервера cross db ownership chaining имеет значение 0 (OFF). Если параметр cross db ownership chaining имеет значение 1 (ON), то все пользовательские базы данных могут участвовать в межбазовых цепочках владения, вне зависимости от значения этого параметра. Этот параметр задается с помощью процедуры sp_configure.
Для задания этого параметра необходимо членство в предопределенной роли сервера sysadmin. Параметр DB_CHAINING не может быть задан для системных баз данных: master, model, tempdb.
Если задано значение ON, то модули базы данных (например, представления, определяемые пользователем функции и хранимые процедуры), в которых используется контекст олицетворения, могут обращаться к ресурсам, расположенным за пределами базы данных.
Если задано значение OFF, то модули базы данных в контексте олицетворения не могут обращаться к ресурсам, расположенным за пределами базы данных. Значение по умолчанию — OFF.
Параметр TRUSTWORTHY устанавливается в значение OFF при каждом присоединении базы данных.
По умолчанию для всех системных баз данных, кроме msdb, параметр TRUSTWORTHY установлен в значение OFF. Оно не изменяется для баз данных model и tempdb. Рекомендуется никогда не устанавливать параметр TRUSTWORTHY в состояние ON для базы данных master.
PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME=» )
Если указан этот параметр, буфер журнала транзакций создается в томе на дисковом устройстве с поддержкой памяти класса хранилища (энергонезависимое хранилище NVDIMM-N), которое также называется постоянным буфером журнала. Дополнительные сведения см. в записи блога о сокращении задержки фиксации транзакций с помощью памяти класса хранилища. Применимо к: SQL Server 2017 (14.x); и более поздним версиям.
Для параметра FOR ATTACH необходимо выполнение следующих условий.
Если база данных, доступная для чтения и записи, располагает единственным файлом журнала, который недоступен в текущий момент, а также если база данных была закрыта в отсутствие пользователей или открытых транзакций перед операцией присоединения, то параметр FOR ATTACH автоматически перестраивает файл журнала и обновляет первичный файл. Однако журнал невозможно перестроить в базе данных, доступной только для чтения, так как нельзя обновить первичный файл. Поэтому, если присоединяется база данных только для чтения, журнал которой недоступен, необходимо указать в предложении FOR ATTACH файлы журнала или файлы.
База данных, созданная в более поздней версии SQL Server, не может быть присоединена в ранних версиях.
В SQL Server любые полнотекстовые файлы, являющиеся частью присоединяемой базы данных, будут присоединены вместе с базой данных. Чтобы задать новый путь полнотекстового каталога, следует указать новое местоположение без имени полнотекстового файла операционной системы. Дополнительные сведения см. в разделе «Примеры».
При присоединении базы данных, содержащей параметр FILESTREAM «Directory name», к экземпляру SQL ServerSQL Server должен проверить уникальность имени Database_Directory. Если это не так, операция присоединения завершится неудачей с ошибкой «Имя FILESTREAM Database_Directory не уникально в этом экземпляре SQL Server». Чтобы избежать этой ошибки, необходимо передать этой операции необязательный параметр directory_name.
Параметр FOR ATTACH не может указываться для моментального снимка базы данных.
В предложении FOR ATTACH может указываться параметр RESTRICTED_USER. Предложение RESTRICTED_USER позволяет подключаться к базе данных только членам предопределенных ролей базы данных db_owner и dbcreator и предопределенной роли сервера sysadmin, количество соединений при этом не ограничивается. Пользователям, не соответствующим этому условию, подключение не разрешается.
Управляет доставкой сообщений компонента Компонент 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.
При подключении реплицируемой базы данных, которая была скопирована, а не отсоединена, необходимо учитывать следующее.
Присоединение работает с форматом хранения vardecimal, но при этом компонент Компонент SQL Server Database Engine должен быть обновлен по крайней мере до версии SQL Server 2005 (9.x) с пакетом обновления 2 (SP2). Присоединение баз данных, использующих формат хранения vardecimal версий ранее SQL Server, невозможно. Дополнительные сведения о формате хранения vardecimal см. в разделе Сжатие данных.
При первом присоединении базы данных к новому экземпляру SQL Server или ее восстановлении копия главного ключа базы данных (зашифрованная главным ключом службы) еще не хранится на сервере. Необходимо расшифровать главный ключ базы данных с помощью инструкции OPEN MASTER KEY. Как только главный ключ базы данных будет расшифрован, появится возможность разрешить автоматическую расшифровку в будущем с помощью инструкции ALTER MASTER KEY REGENERATE, чтобы оставить на сервере копию главного ключа базы данных, зашифрованного с помощью главного ключа службы. После обновления базы данных с переходом от более ранней версии главный ключ базы данных должен быть создан повторно для использования нового алгоритма шифрования AES. См. дополнительные сведения о повторном создании главного ключа базы данных. Время, необходимое для повторного создания главного ключа базы данных с обновлением до алгоритма шифрования AES, зависит от числа объектов, защищаемых главным ключом базы данных. Повторное создание главного ключа базы данных с обновлением до алгоритма шифрования AES необходимо произвести только один раз. Это никак не повлияет на последующие операции повторного создания, выполняемые в соответствии со стратегией смены ключей. См. дополнительные сведения об обновлении базы данных с помощью присоединения.
Рекомендуется не присоединять базы данных из неизвестных или сомнительных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Параметры TRUSTWORTHY и DB_CHAINING не оказывают влияния при присоединении базы данных.
Если файлы журналов доступны, компонент Компонент Database Engine использует их, не перестраивая файлы журнала.
Для параметра FOR ATTACH_REBUILD_LOG необходимо следующее:
Эта операция разрывает цепочку резервных копий журнала. Рекомендуется выполнить полное резервное копирование базы данных после завершения операции. Дополнительные сведения см. в описании BACKUP.
Как правило, параметр FOR ATTACH_REBUILD_LOG используется при копировании базы данных, доступной для чтения и записи и обладающей большим журналом, на другой сервер, где копия будет использоваться преимущественно или исключительно для операций чтения. Поэтому для журнала требуется меньше места, чем в случае исходной базы данных.
Параметр FOR ATTACH_REBUILD_LOG не может указываться для моментального снимка базы данных.
Управляет свойствами файла.
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» — не должна.
Файловую группу и файл ( ) необходимо создавать в одной инструкции.
Свойства SIZE и FILEGROWTH к файловой группе FILESTREAM неприменимы.
SIZE size — указывает размер файла.
Параметр SIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство SIZE к файловой группе FILESTREAM не применяется.
size — задает начальный размер файла.
Если для первичного файла не задан размер, компонент size использует размер первичного файла, указанный в базе данных Компонент Database Engine. Размер модели по умолчанию — 8 МБ (начиная с SQL Server 2016 (13.x);) или 1 МБ (для более ранних версий). Когда указан вторичный файл данных или журнала, но для этого файла не указан аргумент size, Компонент Database Engine задает размер файла равным 8 МБ (начиная с SQL Server 2016 (13.x);) или 1 МБ (для более ранних версий). Размер, указанный для первичного файла, не должен быть менее размера первичного файла базы данных model.
Можно использовать суффиксы килобайт (KB), мегабайт (MB), гигабайт (GB) и терабайт (TB). По умолчанию — MБ. Укажите целое число (без дробной части). size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.
MAXSIZE max_size — задает максимальный размер, до которого может увеличиваться размер файла. Параметр MAXSIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC.
max_size — максимальный размер файла. Можно использовать суффиксы KB, MB, GB и TB. По умолчанию — MБ. Укажите целое число (без дробной части). Если аргумент max_size не указан, файл будет увеличиваться до исчерпания свободного пространства на диске. max_size — целочисленное значение. Для значений, превышающих 2 147 483 647, используйте более крупные единицы измерения.
UNLIMITED — указывает, что размер файла может увеличиваться вплоть до заполнения диска. В SQL Server файл журнала, для которого задано неограниченное увеличение размера, имеет максимальный размер 2 ТБ, а файл данных — 16 ТБ.
Ограничения размера отсутствуют, если этот параметр указан для контейнера FILESTREAM. Размер продолжает увеличиваться до полного заполнения диска.
FILEGROWTH growth_increment — задает шаг автоматического приращения при увеличении размера файла. Значение параметра FILEGROWTH для файла не может превосходить значение параметра MAXSIZE. Параметр FILEGROWTH не может указываться, если аргумент os_file_name задан как путь в формате UNC. Свойство FILEGROWTH к файловой группе FILESTREAM не применяется.
growth_increment — объем пространства, добавляемого к файлу каждый раз, когда требуется увеличить пространство.
Значение может быть указано в килобайтах, мегабайтах, гигабайтах, терабайтах или процентах (%). Если указано число без суффикса MB, KB или %, то по умолчанию используется MB. Если размер указан в процентах (%), то шаг роста — это заданная часть в процентах от размера файла во время этого файла. Указанный размер округляется до ближайших 64 КБ, минимальное значение — 64 КБ.
Значение 0 указывает, что автоматическое приращение отключено и добавление пространства запрещено.
Если параметр FILEGROWTH не задан, доступны следующие значения по умолчанию.
Версия | Значения по умолчанию |
---|---|
Начиная с SQL Server 2016 (13.x); | Данные — 64 МБ. Файлы журналов — 64 МБ. |
Начиная с SQL Server 2005 (9.x) | Данные — 1 МБ. Файлы журналов — 10 %. |
До SQL Server 2005 (9.x) | Данные — 10 %. Файлы журналов — 10 %. |
Управляет свойствами файловой группы. Файловая группа не может указываться для моментального снимка базы данных.
FILEGROUP filegroup_name — логическое имя файловой группы.
filegroup_name filegroup_name — должно быть уникальным в пределах базы данных и не может иметь значения PRIMARY или PRIMARY_LOG, предоставленные системой. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями. Имя должно соответствовать правилам для идентификаторов.
CONTAINS FILESTREAM — указывает, что файловая группа хранит большие двоичные объекты (BLOB-объекты) FILESTREAM в файловой системе.
Область применения: SQL Server 2014 (12.x) и более поздних версий
Указывает, что файловая группа хранит данные memory_optimized в файловой системе. Дополнительные сведения см. в статье In-Memory OLTP (оптимизация в памяти). В каждой базе данных может присутствовать только одна файловая группа MEMORY_OPTIMIZED_DATA. Примеры кода по созданию файловых групп для хранения оптимизированных для памяти данных см. в разделе Создание таблиц, оптимизированных для памяти, и хранимых процедур, скомпилированных в собственном коде.
DEFAULT — определяет именованную файловую группу как файловую группу по умолчанию в базе данных.
database_snapshot_name — определяет имя нового моментального снимка базы данных. Имена моментальных снимков баз данных должны быть уникальны внутри экземпляра SQL Server и соответствовать правилам для идентификаторов. database_snapshot_name не может превышать 128 символов.
При создании моментального снимка базы данных не разрешается применять другие параметры и ключевое слово PRIMARY.
AS SNAPSHOT OF source_database_name — обозначает, что создаваемая база данных является моментальным снимком базы данных-источника, указанной в аргументе source_database_name. Моментальный снимок и база данных-источник должны находиться в одном экземпляре.
Дополнительные сведения см. в подразделе Моментальные снимки базы данных раздела «Примечания».
Remarks
Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.
Инструкция CREATE DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не разрешена в явной или неявной транзакции.
В экземпляре SQL Serverможет быть задано не более 32 767 баз данных.
У каждой базы данных есть владелец, который может выполнять специальные действия в базе данных. Владельцем является пользователь, создавший базу данных. Владельца базы данных можно изменить с помощью инструкции ALTER AUTHORIZATION.
Для обеспечения полной функциональности базы данных некоторые функции базы данных зависят от возможностей файловой системы. Далее приведено несколько примеров функций, зависящих от набора функций файловой системы.
Файлы и файловые группы базы данных
В каждой базе данных имеется по крайней мере два файла (первичный файл и файл журнала транзакций) и по крайней мере одна файловая группа. Для каждой базы данных может указываться не более 32 767 файлов и 32 767 файловых групп.
При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
Для хранения файлов базы данных SQL Server рекомендуется использовать сеть хранения данных (SAN), сеть на основе iSCSI или локально подключенный диск, так как в этой конфигурации достигаются оптимальные производительность и надежность SQL Server.
Моментальные снимки базы данных
С помощью инструкции CREATE DATABASE можно создать статическое представление, доступное только для чтения, моментальный снимок базы данных-источника. Моментальный снимок базы данных согласован с базой данных-источником на уровне транзакций в том виде, в котором она существовала в момент создания моментального снимка. База данных-источник может иметь несколько моментальных снимков.
При создании моментального снимка инструкция CREATE DATABASE не может обращаться к файлам журналов, файлам вне сети, восстанавливаемым файлам и несуществующим файлам.
Если создание моментального снимка базы данных не удается, моментальный снимок помечается как подозрительный и подлежит удалению. Дополнительные сведения см. в описании DROP DATABASE.
Дополнительные сведения см. в описании моментальных снимков базы данных.
Параметры базы данных
Каждый раз при создании базы данных автоматически устанавливаются несколько параметров базы данных. См. список параметров ALTER DATABASE SET.
База данных model и создание новых баз данных
Все определяемые пользователем объекты в базе данных model копируются во вновь создаваемые базы данных. В базу данных model можно добавлять любые объекты, такие как таблицы, представления, хранимые процедуры, типы данных и т. д., которые войдут в состав всех вновь созданных баз данных.
Если инструкция CREATE DATABASE указана без дополнительных параметров размера, то создается первичный файл данных того же размера, что и первичный файл в базе данных model.
Просмотр сведений о базе данных
Для возврата сведений о базах данных, файлах и файловых группах можно использовать представления каталогов, системные функции и системные хранимые процедуры. Дополнительные сведения см. в описании представлений системы.
Разрешения
В целях сохранения управления над использованием диска в экземпляре SQL Serverразрешение на создание баз данных обычно предоставляется небольшому числу учетных записей входа.
В следующем примере предоставляется разрешение на создание базы данных для пользователя Fay базы данных.
Разрешения на файлы данных и журналов
В SQL Server для файлов данных и журналов каждой базы данных заданы некоторые разрешения. Следующие разрешения задаются при применении следующих операций к базе данных:
Эти разрешения предотвращают случайное повреждение файлов, хранящихся в каталоге с открытыми разрешениями.
Microsoft SQL Server 2005 Express Edition не задает разрешения на файлы данных и файлы журнала.
Примеры
A. Создание базы данных без указания файлов
Б. Создание базы данных, в которой заданы файлы данных и журнала транзакций
В. Создание базы данных, в которой указаны несколько файлов данных и журналов транзакций
Г. Создание базы данных с файловыми группами
В этом примере файлы данных и журналов размещаются на различных дисках с целью повышения производительности.