Hace unos meses te mostré cómo hacer una copia de seguridad de una base de datos de SQL Server.
En esta ocasión el código que te muestro es para lo contrario, es decir, para restaurar una copia (backup) que ya tengas.
Nota:
Decirte que en las pruebas que he hecho, solo una base de datos se ha resistido a que la restaure... el error que me daba era de "TimeOut", pero ni cambiándole el valor de Time Out se ha solucionado el problema... te lo digo por si te pasa que no me vengas con quejas ni con preguntas de cómo solucionarlo, que si yo lo supiera, pues ya lo habría comentado... así que... si te surge ese problema, lo mejor es que lo comentes en mis foros a ver si alguien (más experto en SQL que yo), sabe la respuesta.
Decirte que en las pruebas que he hecho, solo una base de datos se ha resistido a que la restaure... el error que me daba era de "TimeOut", pero ni cambiándole el valor de Time Out se ha solucionado el problema... te lo digo por si te pasa que no me vengas con quejas ni con preguntas de cómo solucionarlo, que si yo lo supiera, pues ya lo habría comentado... así que... si te surge ese problema, lo mejor es que lo comentes en mis foros a ver si alguien (más experto en SQL que yo), sabe la respuesta.
El código es bien simple, y esto solo vale para Visual Basic 2005 o cualquier versión superior, pero yo solo lo he probado con Visual Basic 2005 y Visual Basic 2008.
De todas formas, si quieres usarlo en alguna versión anterior, solo tendrás que cambiar la forma de conectarse al servidor de SQL Server.
De todas formas, si quieres usarlo en alguna versión anterior, solo tendrás que cambiar la forma de conectarse al servidor de SQL Server.
'------------------------------------------------------------------------------ '------------------------------------------------------------------------------ Option Strict On Imports System Imports Microsoft.VisualBasic Imports System.Windows.Forms Imports System.Data.SqlClient Public Class Form1 Private Sub btnRestore_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnRestore.Click Me.btnRestore.Enabled = False Me.btnRestore.Text = "Restaurando..." Me.btnRestore.Refresh() Dim sBackup As String = "RESTORE DATABASE " & Me.txtBase.Text & _ " FROM DISK = '" & Me.txtBackup.Text & "'" & _ " WITH REPLACE" Dim csb As New SqlConnectionStringBuilder csb.DataSource = Me.txtServidor.Text ' Es mejor abrir la conexión con la base Master csb.InitialCatalog = "master" csb.IntegratedSecurity = True Using con As New SqlConnection(csb.ConnectionString) Try con.Open() Dim cmdBackUp As New SqlCommand(sBackup, con) cmdBackUp.ExecuteNonQuery() MessageBox.Show("Se ha restaurado la copia de la base de datos.", _ "Restaurar base de datos", _ MessageBoxButtons.OK, MessageBoxIcon.Information) con.Close() Catch ex As Exception MessageBox.Show(ex.Message, _ "Error al restaurar la base de datos", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Using Me.btnRestore.Text = "Restaurar copia" Me.btnRestore.Enabled = True Me.btnRestore.Refresh() End Sub End Class
No hay comentarios:
Publicar un comentario