Comment insert des documents exisitng stockés sur NFTS dans le stockage de sql server sql server

Je fais des searchs sur les files d'attente (en demandant sur stackoverflow en lisant des whitepapers et google search), dans mes documents screnario actuels sont gérés de cette façon:

1) J'ai une table de DB où je garde l'identification de document et le path de doc (comme \ fileserver \ DocumentRepository \ file000000001.pdf)

2) J'ai un dossier de document (\ fileserver \ DocumentRepository) où je stocke les documents

Bien sûr, je dois changer cela en un stockage varbinary (max) / filestream.

Quelle est la meilleure façon d'effectuer cette tâche?

Est-il possible de dire "\ fileserver \ DocumentRepository \ file000000001.pdf" est affecté à un champ varbinary (max) ou je dois l'insert explicitement? Donc en quelque sorte dire au champ varbinary (max): "maintenant vous êtes un pointeur vers le document existant".

Vous ne pouvez pas affecter un file existant à une valeur varbinary (max) / filestream. Vous devez l'insert explicitement.

Cela étant dit, si pour une raison quelconque ce n'est pas une option pour vous (par exemple, vous ne pouvez pas copyr d'énormes quantités de données ou rencontrer un problème d'espace disque pendant la copy), il y a des hacks pour faire la migration avec 0-copy. L'astuce serait de faire les étapes suivantes:

  1. Basculez la database vers un model de récupération simple.
  2. Insérez des files filestream d'espace réservé pour tous les files que vous êtes sur le sharepoint migrer. Lors de l'insertion, utilisez une valeur varbinary de 0x. Lors de l'insertion, collectez les paires (ID document / path de file) => (nom du file filestream).
  3. Arrêtez SQL Server.
  4. Remplacez les files filestream vides par les vrais documents (utilisez les liens move / hard pour éviter de copyr des données).
  5. Démarrez Sql Server, effectuez des vérifications de cohérence (DBCC) et démarrez une nouvelle string de sauvegarde.

Évidemment, ce hack n'est pas recommandé et sujettes à une corruption de database. 🙂