Estoy escribiendo una aplicación C# que descarga una copia de seguridad de la base de datos comprimida a través de FTP. La aplicación necesita extraer la copia de seguridad y restaurarla a la ubicación de base de datos predeterminada.C# SQL Restaure la base de datos a la ubicación de datos predeterminada
No sabré qué versión de SQL Server se instalará en la máquina donde se ejecuta la aplicación. Por lo tanto, necesito encontrar la ubicación predeterminada en función del nombre de la instancia (que está en el archivo de configuración).
Los ejemplos que encontré tenían una clave de registro que leyeron, pero esto no funcionará, ya que esto supone que solo se instaló una instancia de SQL.
Otro ejemplo que encontré creó una base de datos, leyó las propiedades del archivo de la base de datos, eliminó la base de datos una vez que se hizo. Eso es engorroso.
he encontrado algo en el marco .NET que debe trabajar, es decir:
Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile
El problema es que este está volviendo cadenas vacías, lo que no ayuda.
También necesito encontrar la cuenta NT bajo la cual se está ejecutando el servicio SQL, de modo que pueda otorgar acceso de lectura a ese usuario en el archivo de respaldo una vez que lo haya extraído.
Supongo que funcionó para usted. He intentado este mismo comando pero no funciona. Lanzo una excepción sobre "No se puede conectar a MYCOMPUTERNAME". No creo que sea un problema de firewall. Tal vez el alcance del permiso? ServerName es una cadena, ¿correcto? Sería mejor (nuevo Microsoft.SqlServer.Management.Smo.Server (yourServerName)). Information.RootDirectory? –
¡Brillante! Estuve cavando para esto por unos días. – StarPilot