Pour créer une nouvelle base de données et le remplir à partir d'une sauvegarde que je fais habituellement:comment restaurer une sauvegarde de serveur sql contenant des données de flux de fichiers en attribuant un nouveau nom de dossier aux données de flux de fichiers?
CREATE DATABASE MyDatabase -- I create an empty database
-- I retrieve the filepath of mdf and ldf files
DECLARE @FileData varchar(1000)
DECLARE @FileLog varchar(1000)
set @FileData = (select filename from MyDatabase.dbo.sysfiles where fileid = 1)
set @FileLog = (select filename from MyDatabase.dbo.sysfiles where fileid = 2)
-- I Restore the database from backup by substituting the mdf and ldf files
RESTORE DATABASE MyDatabase
FROM DISK = 'c:\Test\Test.bak'
WITH REPLACE,
MOVE 'MyApp_Data' TO @FileData, -- I forced the name to be MyApp_Data for simplicity
MOVE 'MyApp_Log' TO @FileLog -- I forced the name to be MyApp_Log for simplicity
Comment faire la même chose pour les données FILESTREAM aussi? Puis-je forcer la création de dossier pour les données de flux de fichiers ou dois-je le créer manuellement?
Pouvez-vous également commenter mon approche?
Pouvez-vous suggérer un moyen d'insérer les données renvoyées par "Restaurer Filelistonly ..." dans une table temporaire afin que je puisse éviter d'utiliser l'approche décrite dans la question? Est-il possible de faire quelque chose comme sélectionnez * dans #TempTable de (RESTAURER FILELISTONLY DE DISQUE = 'c: \ Test \ Test.bak') - cela ne fonctionne pas de sorte que je peux utiliser dans T- SQL (= dans la requête de restauration) les données contenues dans la table temporaire? Quoi qu'il en soit, je vais poser une question dédiée à cela. – LaBracca