01.07.2012 || Раздел: || MS SQL Server В данной статье я расскажу как включить работу с файловым типом данных - filestream - в случае, если база данных уже создана ранее. Большинство примеров в сети Интернет рассказывает только как настроить filestream при создании новой базы и приводят SQL-скрипты для этого. Есть и примеры с обновлением базы данных, но опять же с приведением SQL-скриптов. На самом деле это можно сделать и через визуальный интерфейс MS SQL Server Management Studio. Об это и пойдет речь в данной статье. Итак, Ваша база данных уже создана и, например, работает некоторое время. Вы решили использовать filestream для каких-то новых данных в вашей базе. (О том как включить filestream на уже созданной таблице с blob (бинарными) данными читайте в следующей статье.) Т.е. в данном примере стоит задача создать новую таблицу для хранения filestream данных на уже существующей базе данных. Прежде, чем приступить к дальнейшей инструкции, убедитесь, что возможность работы с filestream включена на уровне всего экземпляра SQL сервера. Это делается довольно легко, о чем Вы можете прочитать здесь - http://msdn.microsoft.com/ru-ru/library/cc645923 Итак, инструкция: Шаг 1. Создание файловой группы. Все созданные в дальнейшем папки для хранения записей типа filestream будут объединяться в эти группы. Вы можете создать одну группу или несколько в зависимости от потребностей. Первоначально нам необходимо открыть свойства базы данных, для этого в окне Object Explorer выберите свою базу и в контекстном меню перейдите по пункту "Properties": В открывшемся диалоговом окне свойств выбранной БД в блоке "Select a page" выберите пункт "Filegroups". В правой части окна под блоком Filestream нажмите кнопку "Add". Появится новая строка, в которой в колонке "Name" введите любое произвольное название группы на англ.языке без пробелов. Шаг 2. Создание папки для хранения данных типа filestream. Не закрывая предыдущее окно, в блоке "Select a page" выберите пункт "Files". Нажмите кнопку "Add" и в появившейся строке заполните следующие колонки:
Теперь можно нажать кнопку ОК, чтобы сохранить результат: Чтобы увидеть, что сделал SQL сервер в результате наших действий, перейдите по пути, который Вы указали как путь для хранения filestream-данных. Вы увидите, что была создана папка, по имени "Logical Name", в которой расположены некоторые служебные файлы и папки: Изменять или удалять данную служебную информацию не рекомендуется. Шаг 3. Создание новой таблицы для хранения данных типа filestream. Вот здесь к сожалению без SQL-скрипта не обойтись, т.к. создать подобный filestream-столбец через конструктор таблиц невозможно. Поэтому я рекомендую сначала создать таблицу с обязательными для filestream колонками с помощью скрипта, а затем уже через конструктор дополнить ее нужными Вам полями. Итак, открываем окно для ввода скриптов (для этого выберите свою БД и нажмите кнопку "New Query"). В открывшемся окне введите следующий скрипт: CREATE TABLE tblFiles ( fileGUID uniqueidentifier default newid() unique rowguidcol not null, fileDATA varbinary(max) filestream ) Будет создана таблица с двумя обязательными полями: поле fileGUID - обязательный идентификатор, который сервер будет использовать для обозначения фалов, и поле fileDATA, непосредственно ссылающее на нужный файл в файловой системе. После выполнения данного скрипта в созданной ранее папке Вы увидите новую папку с именем, похожим на некий идентификатор. Эта папка будет соответствовать Вашей таблице и в ней будут храниться сохраненные файлы. Теперь Вы можете перейти в конструктор таблицы и дополнить ее нужными полями. Обратите внимание, что из конструктора не видно, является ли поле fileDATA полем типа filestream. Если Вы хотите проверить, является ли колонка полем типа filestream, можно выполнить такой скрипт: SELECT * FROM sys.columns WHERE (object_id = OBJECT_ID('tblFiles', 'table')) AND (system_type_id = type_id('varbinary')) AND (max_length = - 1) AND (is_filestream = 1) В результате выполнения этого скрипта, Вы увидите список всех колонок указанной таблицы, которые имеют атрибут filestream. Теперь можно работать с данной таблицей. Информации об этом довольно много в сети. Например, официальный ресурс от Microsoft: http://msdn.microsoft.com/ru-ru/library/gg471497
Похожие статьи
|
|