У меня есть несколько таблиц, для которых я хочу использовать хранилище файлового потока.
Эти таблицы уже содержат двоичные данные и имеют идентификаторы строк. Однако в то время, когда они были созданы, таблицы не были добавлены в файловую группу с включенным файловым потоком.
Как лучше всего использовать файловый поток в этих таблицах? Мне нужно отбросить + воссоздать таблицы и перенести данные? Есть способ попроще?
В базе данных уже включен поток файлов, и есть другие таблицы, которые их используют.
Вам не нужно добавлять всю таблицу в файловую группу файлового потока, и вы действительно не можете, потому что только столбцы файлового потока сохраняются в хранилище файлового потока; другие столбцы в той же таблице переходят в обычное хранилище.
Прежде всего, вам нужно выбрать, какую файловую группу файлового потока вы хотите использовать для хранения данных файлового потока таблицы:
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'