Организиране на съхранение на файлове в база данни на Microsoft SQL Server
Започвайки с версия 2012, нов формат за съхранение на файлови данни стана наличен в SQL Server - файлови таблици.
Файловите таблици (FileTables) са специален тип таблици, който позволява освен съхраняване на файлове с почти неограничен размер (FileStream, който се появи във версия 2008, може лесно да се справи с това) и достъп до тях от напълно приложения на трети страни, които не са дори свързан с тази база данни, използвайки обичайните инструменти на файловата система Windows.
Поддържа се и съхранение на папки.
Подготовка за работа
Файловите таблици са базирани на технологията FileStream. Следователно, преди да създадете файлова таблица, трябва да активирате поддръжката на FileStream за този екземпляр на SQL Server.
Включването се извършва на два етапа.
- Активиране на поддръжката на FileStream на ниво сървър в прозореца на свойствата;

- Активиране на поддръжката на FileStream за услугата SQL Server на този екземпляр и след това рестартиране. Най-лесният начин да направите това е с Sql Server Configuration Manager.

След като поддръжката на FileStream е активирана, трябва да добавите файловата група FileStream към базата данни и да създадете поне един файл в нея.


Сега можете да започнете директна работа с файлови таблици.
Създаване на файлови таблици
За да създадете файлова таблица, е достатъчно да използвате най-простата команда Transact-SQL
Ключовият параметър в него е параметърът FILETABLE_DIRECTORY, който определя името на условната „папка“ във файловата система, чрез която ще се осъществява достъп до файловете, съхранявани в таблицата. Защо тази папка е наречена условна ще бъде обяснена по-нататък.
В горната инструкция липсват колони и техните типове данни. Факт е, че структурата на файловите таблици е строго фиксирана и автоматично се създава заедно с таблицата. Тази структура е подробно описана в документацията [1].
Работа с файлови таблици с помощта на файловата система
Тази условна мрежова папка ви позволява да работите със съдържанието на файловите таблици както с най-обикновените файлове. В същото време се поддържат файлове от всякакъв формат. Можете също да добавите цели папки.
Добавянето, модифицирането или изтриването на файлове от тази папка променя съответните данни в самата файлова таблица. По-долу е даден пример за това как да добавите файл към файлова таблица.

Какво всъщност представлява тази условна „папка“?
И всъщност в папката, където се съхраняват файловете на базата данни, се създава подпапка с името на файла с данни FileStream. В него от своя страна се създават още две вложени подпапки с имена във формат GUID.