我正在尝试将大量文件从一个数据库导入另一个数据库。原始数据库将文件名存储在数据库表中,并将实际文件存储在磁盘上的某个位置。
新数据库使用文件流来存储文件。
我之前使用 OPENROWSET 将文件导入新数据库,但在这些情况下,我手动提供了完整路径,效果很好。
在这种情况下,我认为有多个文件可以动态构建路径,将磁盘上目录的位置与旧数据库中的文件名结合起来。
然而,事实证明,OPENROWSET 不允许连接字符串。我发现要走的路是使用动态 SQL (http://stackoverflow.com/questions/6621579/t-sql-issue-with-string-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
这样,我就有了 ID、文件名和完整路径。但是如何将这三个项目与二进制数据一起插入到新数据库中呢?我希望有人能帮帮忙