J'essaie d'importer une grande quantité de fichiers d'une base de données dans une autre. La base de données d'origine stockait les noms de fichiers dans une table de base de données et les fichiers réels quelque part sur le disque.Importer des fichiers dans la base de données SQL Server 2008
La nouvelle base de données utilise FileStream pour stocker les fichiers.
J'ai déjà importé des fichiers dans la nouvelle base de données en utilisant OPENROWSET, mais dans ces cas, j'ai fourni manuellement le chemin complet qui a bien fonctionné. Comme dans ce cas, il y a plusieurs fichiers que j'ai pensé que je pourrais construire dynamiquement le chemin combinant l'emplacement du répertoire sur le disque avec les noms de fichiers de l'ancien DB.
Cependant, il s'avère que OPENROWSET n'autorise pas la concaténation de chaînes. J'ai trouvé que le chemin à parcourir serait d'utiliser SQL dynamique (http://stackoverflow.com/questions/6621579/t-sql-issue-with-string-concat).
Cependant, je ne sais pas comment combiner les informations de l'ancienne table de base de données avec OPENROWSET pour pouvoir insérer les fichiers dans la nouvelle base de données.
Mon idée actuelle est quelque chose comme ceci:
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
De cette façon, je l'ID, nom de fichier et le chemin complet. Mais comment puis-je insérer ces trois éléments avec les données binaires dans la nouvelle base de données? J'espère que quelqu'un peut aider
Il y avait encore quelques citations manquantes mais c'était bien la solution. Merci! – Pieter