Я использую следующий код для изменения местоположения базы данных сервера по умолчанию (где SQL Server хранит новые файлы базы данных и файлы журнала):
using Microsoft.SqlServer.Management.Smo;
Server smoServer = new Server(new ServerConnection(server, username, password));
server.DefaultFile = newPath;
server.Alter();
server.Refresh();
// Now create a database in the new location
Database smoDatabase = new Database(smoServer, database);
smoDatabase.Create();
smoServer.Refresh();
Вот моя проблема: я могу заглянуть в SQL Server Management Studio и увидеть, что свойство сервера для расположений базы данных по умолчанию было изменено на newPath
. Однако когда я использую SMO для создания новой базы данных, новая база данных и файл журнала создаются по старому пути.
После перезапуска экземпляра SQL Server код SMO создает базу данных / файл журнала по новому пути.
Есть идеи, почему у меня такое поведение?
Редактировать: Одно из предложений состоит в том, что изменение фактически не происходит до тех пор, пока экземпляр сервера Sql не будет перезапущен. Однако если я открою SSMS и создам новую базу данных на экземпляре, она будет создана по новому пути без перезапуска .