Restaurar base de datos SQL desde programa.

05/11/2004 - 23:18 por Luis Carlos Villanueva | Informe spam
Un saludo a todos.

Estoy haciendo una aplicación con Windows Form que se conecta a SQL Server.
Necesito restaurar la BD desde programa y para ello utilizo el siguiente
stored procedure que he ubicado en la MASTER .


Create Procedure dbo.RestoreMiBD
@Path char
AS
RESTORE DATABASE CIJ FROM DISK = @Path WITH RECOVERY
GO


Esta opción me funciona perferctamente desde el analizador de consultas pero
cuando lo llamo desde C# ya no funciona. Me sale un error indicando que tengo
abierta la BD por lo cual no me puede restaurar una base de datos en uso.

El código en C# es:


SqlConnection MiConeccionSQL=new
SqlConnection(clGlobal.VarStringConexiónMaster);
MiConeccionSQL.Open();
SqlCommand MiComandoSQL = new SqlCommand("RestoreMiBD", MiConeccionSQL);
MiComandoSQL.CommandType = CommandType.StoredProcedure;
SqlParameter Path =new SqlParameter("@Path", SqlDbType.Char, 255);
Path.Value = this.textBoxPathRestore.Text;
MiComandoSQL.Parameters.Add(Path);
MiComandoSQL.ExecuteNonQuery();
MiConeccionSQL.Close();



Agradeceré cualquier sugerencia sobre el tema.

Luis Carlos Villanueva
 

Leer las respuestas

#1 Fernando Hunth
08/11/2004 - 17:01 | Informe spam
Proba hacerlo desde un DTS

"Luis Carlos Villanueva" wrote:

Un saludo a todos.

Estoy haciendo una aplicación con Windows Form que se conecta a SQL Server.
Necesito restaurar la BD desde programa y para ello utilizo el siguiente
stored procedure que he ubicado en la MASTER .


Create Procedure dbo.RestoreMiBD
@Path char
AS
RESTORE DATABASE CIJ FROM DISK = @Path WITH RECOVERY
GO


Esta opción me funciona perferctamente desde el analizador de consultas pero
cuando lo llamo desde C# ya no funciona. Me sale un error indicando que tengo
abierta la BD por lo cual no me puede restaurar una base de datos en uso.

El código en C# es:


SqlConnection MiConeccionSQL=new
SqlConnection(clGlobal.VarStringConexiónMaster);
MiConeccionSQL.Open();
SqlCommand MiComandoSQL = new SqlCommand("RestoreMiBD", MiConeccionSQL);
MiComandoSQL.CommandType = CommandType.StoredProcedure;
SqlParameter Path =new SqlParameter("@Path", SqlDbType.Char, 255);
Path.Value = this.textBoxPathRestore.Text;
MiComandoSQL.Parameters.Add(Path);
MiComandoSQL.ExecuteNonQuery();
MiConeccionSQL.Close();



Agradeceré cualquier sugerencia sobre el tema.

Luis Carlos Villanueva




Preguntas similares