Я пишу приложение на C #, которое загружает сжатую резервную копию базы данных по FTP. Затем приложению необходимо извлечь резервную копию и восстановить ее в расположении базы данных по умолчанию.
Я не буду знать, какая версия SQL Server будет установлена на компьютере, на котором запущено приложение. Поэтому мне нужно найти местоположение по умолчанию на основе имени экземпляра (которое находится в файле конфигурации).
Все примеры, которые я обнаружил, имели раздел реестра, который они читали, но это не будет работать, поскольку предполагается, что установлен только один экземпляр SQL.
Другой пример, который я нашел, - создание базы данных, чтение свойств файла этой базы, удаление базы данных после того, как это было сделано. Это просто громоздко.
Я нашел что-то в .NET Framework, которое должно работать, например:
Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile
Проблема в том, что это возвращает пустые строки, что не помогает.
Мне также нужно выяснить учетную запись NT, под которой работает служба SQL, чтобы я мог предоставить этому пользователю доступ на чтение к файлу резервной копии после извлечения его.