Восстановите резервную копию базы данных с помощью SQL FileTable в том же экземпляре
Как я могу сделать резервную копию и восстановить базу данных с FileTable
к тому же экземпляру SQL-сервера; с FILESTREAM
включен; но с другим именем? Независимо от того, делаю ли я это с помощью графического интерфейса или выписываю сценарии, я застреваю в одном месте: восстановление новой несуществующей базы данных завершается неудачно с "невозможно получить эксклюзивный доступ к базе данных".
Проблема: у меня есть FileTables в резервной копии, и похоже, что он пытается восстановить файлы поверх файлов существующей базы данных.
Это скрипт, который я использую для восстановления:
RESTORE DATABASE [MyDatabase_Test]
FROM DISK = N'D:\Backup\MyDatabase.bak'
WITH FILE = 1,
MOVE N'MyDatabase' TO N'D:\Data\MyDatabase_Test.mdf',
MOVE N'MyDatabase_log' TO N'E:\Data\MyDatabase_Test_log.ldf',
MOVE N'MyDatabase_Docs' TO N'D:\Data\MyDatabase_Test_Docs', NOUNLOAD, STATS = 5
-- BUT now my database has a FileTable called 'Documents' which is setup as \\DBSERVER\MyDatabase\Documents.
-- How do I specify that my files should go to \\DBSERVER\MyDatabase_Test\Documents during the restore?
Это ломается, только если это тот же экземпляр SQL, на котором он запущен. Я думаю, что мне нужно указать DIRECTORY_NAME
для FILESTREAM
базы данных, к которой я возвращаюсь... но не выяснил, как это сделать (или если я на правильном пути)