あるデータベースから別のデータベースに大量のファイルをインポートしようとしています。元のデータベースは、ファイル名をデータベーステーブルに格納し、実際のファイルはディスク上のどこかに格納しました。SQL Server 2008データベースにファイルをインポートする
新しいデータベースは、ファイルを保存するためにfilestreamを使用します。
以前はOPENROWSETを使用して新しいデータベースにファイルをインポートしましたが、その場合は完全に手動でフルパスを提供していました。
この場合、複数のファイルがあります。私は、ディスク上のディレクトリの場所と古いDBのファイル名を組み合わせたパスを動的に構築できると考えました。
ただし、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、ファイル名と完全なパスを持っている:
私の現在の考えは、このようなものです。しかし、これらの3つの項目をバイナリデータと共に新しいDBに挿入するにはどうすればよいですか?誰かが助けてくれることを願っています。
まだ引用符がいくつかありませんでしたが、これは確かに解決策でした。ありがとう! – Pieter