Я работаю над обновлением фреймворка для тестирования кода, управляемого базой данных. Перед каждым тестом записи в базу данных выполняется RESTORE резервного копирования базы данных, который занимает 15-20 секунд, поэтому я пытаюсь ускорить его, сохраняя «резервную копию» отдельного mdf, ldf и ndf файлы, чтобы я мог просто СОЗДАТЬ БАЗУ ДАННЫХ ... ДЛЯ ПРИЛОЖЕНИЯ перед каждым тестом. Проблема в том, что при использовании RESTORE вы можете «переместить» (или, более конкретно, выбрать, куда восстановить резервную копию) файлы mdf, ldf и ndf примерно так:
RESTORE DATABASE [testDB]
FROM DISK = N'\\Path\To\Backup' WITH FILE = 1, RECOVERY,
MOVE N'testDB' TO N'\\Path\To\MDF',
MOVE N'testDB_log' TO N'\\Path\To\LDF',
MOVE N'ftrow_testDB' TO N'\\Path\To\NDF',
NOUNLOAD, REPLACE, STATS = 1
Однако, с CREATE DATABASE FOR ATTACH, я не могу найти какой-либо способ "переместить" файлы mdf, ldf и ndf. Когда вы присоединяете, он просто использует файлы, которые вы указали в качестве файлов базы данных:
CREATE DATABASE [testDB] ON
(FILENAME = N'\\Path\To\MDF'),
(FILENAME = N'\\Path\To\LDF'),
(FILENAME = N'\\Path\To\NDF')
FOR ATTACH
Это означает, что для хранения «резервной копии» этих трех файлов мне потребуется каждый раз копировать их из каталога резервных копий, что отнимает много времени и более чем сводит на нет любое увеличение скорости.
У кого-нибудь есть идеи, как заставить его работать?