2016-11-26 12 views
0

Я использую filetable. Когда я удаляю файлы из SQL Server FileTable, я хочу, чтобы файлы были удалены из папки, а когда я удаляю файл из папки, его следует удалить из filetable.SQL Server FileTable: удалить файл

И у меня есть второй вопрос: есть ли способ сохранить файл на сервере и прочитать его (файлы размером более 1 МБ)?

ответ

0
DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ] 
table_name [ ,...n ] 
[ ; ] 

Вы можете использовать этот код, чтобы уронить файл встр вы хотите удалить только некоторые конкретные данные используют, где или имеющие пункты в заявлении Tsql

+0

Мой вопрос не в том, что такое quary для удаления строки из файла tabletable.my вопрос в том, как я могу удалить строку и физический файл из указанной папки в то же время – user2541236

2

Для первого вопроса, то файлы должны быть удалены как только вы удалите относительную строку (DELETE FROM ...) и зафиксируете. То же самое следует применять в обратном порядке (если вы удалите файл, относительная строка должна исчезнуть).

Это верно для файла подвергается через сетевой ресурс, то физического файл будет удален в более позднее время, в зависимости от модели восстановления и процесса сбора мусора в FileStream (см sp_filestream_force_garbage_collection хранимой процедуры).

Для второго вопроса доступ будет всегда медленнее, чем чистая файловая система, из-за служебных данных SQL Server (find время будет на порядок быстрее).

По сравнению с доступом T-SQL все зависит от размера сохраняемого вами блоба. В двух словах, если ваши капли меньше 1 МБ с использованием T-SQL, это должно быть быстрее. Подробнее см. Здесь: Best Practices on FILESTREAM implementations.

+0

У вас есть официальная ссылка для следующего оператора : * «То же самое следует применять в обратном порядке (если вы удаляете файл, относительная строка должна исчезнуть). *. Я читаю [здесь] (https://msdn.microsoft.com/en-us/library/cc645962.aspx#Anchor_2): * «Единственный способ удалить строку и, следовательно, файл - использовать Оператор DELETE Transact-SQL. "*. –

+0

Привет, TT, ссылка, которую вы опубликовали, касается FileStream. Вопрос был о FileTable. В то время как один использует другой (FileTable использует FileStream), это разные технологии. Хотя это правда, вы должны использовать T-SQL для удаления строки фильтра, вы можете удалить файл с поддержкой файла с обычной командой Win32. Это значит, что в FileTable драйвер фильтра автоматически выдает инструкцию удаления (см. [Https://www.microsoftpressstore.com/articles/article.aspx?p=2225060&seqNum=2](https://www.microsoftpressstore. ком/статьи/article.aspx? р = 2225060 & SEQNUM = 2)). Извините за беспорядок :). –

+0

Нет проблем, я действительно запутался, а не твоя вина. Спасибо за вход! –

Смежные вопросы