Назад | Перейти на главную страницу

Существующие таблицы с двоичными файлами для использования файлового потока

У меня есть несколько таблиц, для которых я хочу использовать хранилище файлового потока.

Эти таблицы уже содержат двоичные данные и имеют идентификаторы строк. Однако в то время, когда они были созданы, таблицы не были добавлены в файловую группу с включенным файловым потоком.

Как лучше всего использовать файловый поток в этих таблицах? Мне нужно отбросить + воссоздать таблицы и перенести данные? Есть способ попроще?

В базе данных уже включен поток файлов, и есть другие таблицы, которые их используют.

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

Прежде всего, вам нужно выбрать, какую файловую группу файлового потока вы хотите использовать для хранения данных файлового потока таблицы:

ALTER TABLE YourTable SET (FILESTREAM_ON = FSGroup)

Затем вы можете просто добавить в таблицу столбцы файлового потока:

ALTER TABLE YourTable ADD YourColumn varbinary(max) FILESTREAM

Однако вы не можете ИЗМЕНИТЬ существующий столбец, чтобы начать использовать файловый поток, если он не был определен таким образом; но вы можете создать новый столбец, скопировать данные, а затем отбросить старый столбец и переименовать новый:

ALTER TABLE YourTable ADD NewColumn varbinary(max) FILESTREAM
UPDATE YourTable SET NewColumn = OldColumn
ALTER TABLE YourTable DROP COLUMN OldColumn
EXEC sp_rename 'NewColumn','OldColumn','COLUMN'