Я пытаюсь импортировать большое количество файлов из одной базы данных в другую.Исходная база данных хранит имена файлов в таблице базы данных и фактические файлы где-то на диске.
Новая база данных использует файловый поток для хранения файлов.
Я импортировал файлы в новую базу данных ранее, используя OPENROWSET, но в этих случаях я указывал полный путь вручную, который работал нормально.
Поскольку в этом случае я полагал, что есть несколько файлов, я мог быдинамически строить путь, комбинируя расположение каталога на диске с именами файлов из старой БД.
Однако, как выясняется, OPENROWSET не позволяет объединять строки.Я обнаружил, что можно пойти по пути использования динамического SQL (/5025507/t-sql-problema-so-strokoi-concat).
. Однако я не знаю, как объединить информацию из старой таблицы базы данных с OPENROWSET, чтобы иметь возможность вставлять файлы в новую базу данных.
Моя текущая идея выглядит примерно так:
create table #Files
(
IssueId int not null,
FileName nvarchar(12) not null,
FullPath nvarchar(255) not null
)
insert into #Files
select IssueId, FileName, @FilePath + '\' + FileName
from OLDDBO.dbo.Files
Таким образом, у меня есть идентификатор, имя файла и полный путь. Но как мне вставить эти три элемента вместе с двоичным файлом?данные в новую БД? надеюсь, кто-то может помочь