Освободить файл от данных можно с помощью команды DBCC SHRINKFILE (file_name, EMPTYFILE). Аргумент EMPTYFILE предписывает распределить все данные из файла между другими файлами группы. Добавление новых данных в файл не разрешается.
О ADD FILEGROUP f i legroup_name. Используется для создания в базе данных группы файлов с указанным именем. Как видно из синтаксиса, при создании группы не указывается, какие файлы должны в нее войти. Перенос существующих файлов в новую группу выполняется отдельно. В базе данных может быть создано до 256 групп файлов. Напомним, что группы файлов создаются только для файлов данных. Файлы журнала транзакций не могут быть организованы в группы.
О REMOVE FILEGROUP filegroup_name. Используется для удаления из базы данных указанной группы файлов. При этом также будут удалены все файлы, включенные в эту группу. Однако перед выполнением этой операции необходимо предварительно удалить из файлов все данные.
О MODIFY FILE <fi lespec>. Используется для изменения параметров файла базы данных, таких как логическое имя (NAME), первоначальный размер (SIZE), максимальный размер (MAXSIZE) и шаг приращения (FILEGROWTH). За один вызов команды ALTER DATABASE может быть изменен только один параметр одного из файлов. Хотя для описания файла и используется конструкция <fi!espec>, ее синтаксис несколько иной, чем при создании базы данных. Отличительной особенностью является наличие аргумента NEWNAME, с помощью которого можно изменить логической имя файла. В остальном же синтаксис и использование конструкции аналогичны рассмотренным ранее.
<filespec> ::=
( NAME = logical_file_narne
[ . NEWNAME = new_log1cal_name ]
[ , FILENAME = "os_file_name" ]
[ . SIZE = size ]
[ . MAXSIZE = { max_s1ze | UNLIMITED } ]
[ . FILEGROWTH = growthjncrement ] )
О MODIFY NAME = new_dbname. Как нетрудно догадаться, этот аргумент позволяет изменять имя базы данных. Для этого достаточно всего-навсего указать новое имя с помощью параметра new_dbname.
О MODIFY FILEGROUP fi1egroup_name NAME = new_fi1egroup_name. Помимо изменения имени базы данных также можно переименовать и отдельную группу файлов. Это и делается с помощью рассматриваемого аргумента. Все, что нужно для изменения имени группы, — указать текущее имя с помощью параметра f i I egroup_name и новое имя— с помощью параметра new_fiIegroup_name.
О MODIFY FILEGROUP fi1egroup_name filegroup_property. Этот аргумент позволяет управлять свойствами группы файлов. Имя группы файлов, свой- • ства которой предполагается изменить, задается параметром f i I egroup_name, тогда как параметр f i I egroup_property предназначен для указания свойства, которое должно быть назначено для группы файлов. Поддерживаются следующие значения параметра f ilegroup_property.
* READONLY. При указании этого значения группа файлов переводится в режим «только для чтения». В этом режиме запрещается выполнение любых модификаций данных в файлах, принадлежащих соответствующей группе. Переключение группы файлов в режим «только для чтения» могут выполнять только пользователи, имеющие монопольный доступ к базе данных. Нельзя устанавливать в режим «только для чтения» первичную группу файлов, так как в этом случае системные таблицы будут заблокированы и выполнение любых изменений в базе данных (в том числе и отмена для группы файлов режима «только для чтения») станет невозможным.
* READWRITE. Действие этого значения обратно предыдущему. Используется для разрешения изменений в группе файлов, установленной в режим «только для чтения». Работа с этим значением, как и с предыдущим, разрешена только пользователям, имеющим монопольный доступ к базе данных.
* DEFAULT. Используется для маркировки указанной группы файлов как группы файлов по умолчанию (default filegroup). В эту группу файлов будут включаться все файлы данных, которые явно не включены ни в какую другую группу файлов. Более того, все объекты (индексы, таблицы и их столбцы), для которых явно не указано, в какой группе файлов они должны располагаться, будут размещены в группе файлов по умолчанию. Группа файлов, которая до этого была группой файлов по умолчанию, становится обычной группой.