Друзья, доброго времени суток.
Когда я столкнулся первый раз с необходимостью установки FILESTREAM, я обнаружил, что нет быстрой и подробной инструкции как это сделать и чтобы вам было легче, я решил поделиться с вами быстрым способом настройки FILESTREAM.
1. Включить FileSteam (в настройках Configuration Manager > Экземпляр сервера > В настройках ключить FileSteam, если хотим работать
не только со стороны SQL, а ещё и со стороны файловой системы, то вкл вторую галочку, третья — удалённый доступ других серверов).
При этом создаётся общая папка.
2. В SSMS > Свойства сервера > Advanced > активировать FileStream Access Level
3. Настроить БД
— Нужно создать спец. файловую группу, которая находится в нижнем списке файловых групп базыданных
— Включить хотя бы 1 файл в данную группу.
4. Создать файловую таблицу
— Надо сделать хотя бы 1 поле varbinary(Max) FILESTREAM
— Надо добавить спец. столбец, который похож будет на первичный ключ(ID uniqueidentifier NOT NULL ROWGUIDCOL UNIQUE)
— ROWGUIDCOL — позволяет обращаться к столбцу, не зная его имени, может быть только 1
— Можем файлово хранить только varbinary(MAX)
— Пример таблицы:
CREATE TABLE fs ( [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE, [SerialNumber] INTEGER UNIQUE, [Chart] VARBINARY(MAX) FILESTREAM NULL )
5. Чтобы вставить данные, в поле varbinary(MAX), всё что вставляем, надо преобразовывать к данному типу
6. Чтобы выбрать данные надо поле varbinary(MAX) обратно преобразовать в нужный формат
7. Теперь все вставляемые данные в столбец [Chart] будут храниться в FILESTREAM
8. Проверка на вставку данных
INSERT INTO fs VALUES (newid (), 2, CAST ('' as varbinary(max)));
Примерно так выглядит папка с FILESTREAM: