miércoles, 23 de febrero de 2011

Cómo crear un backup de una base de datos en c#

En esta ocasión les explicare como realizar el un backup de una base de datos SQL Server usando Visual Studio.
Voy a utilizar c# para mi cometido, pero se puede utilizar también Visual Basic. Es muy parecido.

 Soluciones de backup para SQL Server

El ejemplo a descargarse contiene el proyecto en visual studio, el script para crear el procedimiento almacenado (copia respaldo.sql)  y un backup de la base de datos (test.bak).


Para bajarse el ejemplo, ingrese a este link:
http://code.msdn.microsoft.com/Crear-un-backup-de-base-de-650b695a

Una vez en el link presione el botón c# mostrado en la siguiente figura:
Primeramente voy a crear en el SQL Server Management Studio un procedimiento almacenado que realiza un backup de mi base de datos:



create procedure [dbo].[backupdb]
as
BACKUP DATABASE [test] TO  DISK = N'C:\copia\test.bak'
WITH NOFORMAT, NOINIT,  NAME = N'test-Completa Base de datos Copia de seguridad', SKIP, NOREWIND, NOUNLOAD,  STATS = 10


Este código obtiene una copia de respaldo carpeta "copia" en el drive c de mi base de datos test en un archivo llamado test.bak


Luego, desde c# llamamos al procedimiento almacenado asi:


       private void button1_Click(object sender, EventArgs e)
         {
            try
            {
                string ConnectionString = ConfigurationManager.ConnectionStrings["connectionStringName"].ToString();
                SqlConnection cnn = new SqlConnection(ConnectionString);


                SqlCommand cmd = new SqlCommand("backupdb", cnn);
                cmd.CommandType = CommandType.StoredProcedure;

                cnn.Open();

                cmd.ExecuteNonQuery();


                MessageBox.Show("El backup fue realizado exitosamente");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
       
        }
Este código lo que hace es obtener una copia de respaldo al hacer click con un botón en c#.
Con un código similar a este se pueden hacer miles de funciones en c# como:


  • Crear inicios de sesión en SQL Server.
  • Crear estadísticas.
  • Crear permisos
  • Y muchas opciones más.

People who read this post also read :



7 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. hola perdón por usar tu solicitud
    viendo el comentario tengo una duda
    Cómo crear un procedimiento para hacer backup de una base de datos de interbase y ser ejecutado en c# al mismo tiempo poder restaurar la misma

    ResponderEliminar
  3. Este código saca el backup.
    Para restaurar, es algo bien parecido.

    ResponderEliminar
  4. Que tal, estoy tratando de hacer un back up. Pero me da esta excepcion.
    Cannot perform a backup or restore operation within a transaction. BACKUP DATABASE is terminating abnormally.

    ResponderEliminar
  5. El backup tiene que ser la primera palabra dentro de la transacción. El error te indica que antes del backup no puede haber otras sentencias.

    ResponderEliminar
  6. Como puedes establecer que dias quieres que se haga el respaldo o si seran todos los dias pero desde c#?
    o hay una manera de automatizar los respaldos pero desde c#?

    ResponderEliminar
  7. hola disculpa tengo que importar algo para que no me salga el error en :

    ConfigurationManager

    ResponderEliminar