FileTable основывается на функционале FILESTREAM, появившемся в 2008-й версии. Давайте быстро вспомним что он из себя представляет. FILESTREAM позволяет хранить файлы в базе данных, при этом сохраняя возможность потоковой работы с файлами. Таким образом мы поддерживаем ссылочную целостность базы данных и файловой системы. Более подробно можно прочитать здесь - Введение в FILESTREAM. На презентациях и в теории всё выглядит очень красиво, но на самом деле, если попробовать использовать FILESTREAM сталкиваешься со множеством ограничений, да и сам код работы с подобными файлами красотой не блещет (открываем транзакцию в БД, получаем дескриптор файла и т.д.). Одним из ограничений FILESTREAM была синхронизация БД и файловой системы. Удаление записи в базе приводило к удалению файла (тут всё ок), а вот удаление файла не приводило к удалению записи и приводило к ошибке при обращении к этой записи. Кроме этого недостатка, файлы на файловой системе получали совершенно нечитаемые имена и находились в папке, указанной при создании базы данных. На самом деле FileTable не устраняет эти недостатки FILESTREAM, но успешно позволяет абстрагироваться от них. Суммируя всё вышесказанное, FileTable это не замена, а скорее надстройка над FILESTREAM. Впрочем вы это и сами увидите по ходу изложения.
[More]