Sni.DelWoods Ответов: 1

Sql-server: ссылка на файлы в таблице SQL


У меня есть SQL-таблица для хранения информации о документах, которые отправляются клиентам.

Стол
timestamp [datetime2(0)]
customerID [nvarchar(50)]
fileOk [bit]
folder [nvarchar(max)]
file1 [nvarchar(255)]


Пример
timestamp            customerID    fileOk    folder         file1
2018-08-13 14:20:00  C920987238    1         /docFolder/    customerdoc1.pdf


Таблица состоит примерно из 100.000 строк.
Есть ли способ привязать таблицу к существующему каталогу?
Допустим, я удаляю файл в папке, поле fileOk автоматически устанавливается равным 0?
Или если я добавлю файл в папку, то будет создана новая запись по умолчанию?

Что я уже пробовал:

Использовал пользовательский скрипт (C#), который выполняет эту работу.

CHill60

Насколько мне известно, вы будете иметь, чтобы записать файл Watcher, чтобы сделать это для вас

littleGreenDude

Пожалуйста, проверьте это https://www.codeproject.com/Articles/26528/C-Application-to-Watch-a-File-or-Directory-using-F

Sni.DelWoods

Filewatcher-это то, что у меня уже есть. Приложение проверяет каталог и обновляет базу данных.

1 Ответов

Рейтинг:
11

MadMyche

Единственный собственный SQL Server функционально, о котором я знаю, - это реализация FileTable, которая создаст каталог в локальной файловой системе для размещения файлов.
Стандартные процессы файловой системы будут атомарными с таблицей в SQL, а затем триггеры могут быть использованы для обновления текущей таблицы.

Документация:
Загрузка файлов в FileTable[^]
FileTables - Совместимость Триггеров[^]

Лично я бы придерживался решения с программным кодом.


Sni.DelWoods

Спасибо за это. Майкрософт образ filetable-это очень .....бедный. Было бы легко связать просто поле таблицы с файлом или чем-то в этом роде.

Кодовое решение, помимо sql server, действительно кажется лучшим решением.

MadMyche

Я действительно не забочусь о файлах внутри БД; для поддержания связи файловая система:база данных требуется дополнительная служба.