Vous êtes sur la page 1sur 5

VB.

NET - Backup e Restore no SQL Server


Realizar Backup e Restore em Banco de dados do SQL Server muito simples usando a ferramenta Enterprise Manager ; basta usar as opes do menu Tools:

Como fazer isto via cdigo ? Vamos criar um projeto no Visual Studio .NET do tipo Windows Application usando a linguagem VB.NET. Neste projeto voc vai aprender a: Listar os banco de dados existente no SQL Server Efetuar o BACKUP de um banco de dados no SQL Server Efetuar o RESTORE de um banco de dados no SQL Server No formulrio padro do projeto insira trs controles Button , um ListBox e um GroupBox conforme a figura abaixo:

Como vamos acessar o SQL Server deveremos importar o namespace : Imports System.Data.SqlClient

O cdigo da classe
Vou criar um mdulo de classe usando o menu Project opo Add Class com o nome de SQLServer.vb e nele irei criar 3 mtodos : ObtemBancoDeDadosSQLServer BackupDataBase RestauraDataBase O cdigo de cada mtodo dado a seguir: a- ObtemBancoDeDadosSQLServer - retorna uma string com a relao dos banco de dados existentes no SQL Server. Estou abrindo uma conexo com o banco de dados MASTER e usando a tabela sysdatabases para obter o nome dos banco de dados Function ObtemBancoDeDadosSQLSever(ByVal ConnString As String) As String() Dim cn As New SqlConnection(ConnString) Dim dbLista As New ArrayList ' retorn o nome de todos os banco de dados da tabela sysdatabases em MASTER Dim cmd As New SqlCommand("SELECT [name] FROM sysdatabases", cn) Dim reader As SqlDataReader cn.Open() Try reader = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message()) End Try While reader.Read() ' inclui o nome no arraylist dbLista.Add(reader("name")) End While cn.Close() ' retorna o array de strings Return dbLista.ToArray(GetType(String)) End Function

b - BackupDatabase - Estou usando o comando BACKUP DATABASE para fazer o backup do banco de dados selecionado na caixa de listagem. Function BackupDatabase(ByVal connString As String, ByVal nomeDB As String, ByVal backupFile As String) Dim cn As New SqlConnection(connString) Try ' comando para fazer o backup do Banco de dados Dim cmdBackup As New SqlCommand("BACKUP DATABASE ["

& nomeDB & "] TO DISK = '" & backupFile & "'", cn) cn.Open() cmdBackup.ExecuteNonQuery() Finally cn.Close() End Try End Function

c - RestauraDatabase - Estou usando o comando RESTORE DATABASE para


fazer a restaurao do banco de dados selecionado na caixa de listagem. Function RestauraDatabase(ByVal connString As String, ByVal nomeDB As String, ByVal backupFile As String) Dim cn As New SqlConnection(connString) Try 'comando para restaurar o banco de dados Dim cmdBackup As New SqlCommand("RESTORE DATABASE [" & nomeDB & "] FROM DISK = '" & backupFile & "'", cn) cn.Open() cmdBackup.ExecuteNonQuery() Finally cn.Close() End Try End Function

Cdigo do formulrio
Para usar estes mtodos devemos criar uma instncia da classe no formulrio do projeto. Abaixo temos o cdigo para cada um dos botes (Evento Click): O cdigo do boto - Relao de banco de dados no SQL Server: Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master" Dim sqlUtils As New SQLServer Dim databases() As String = sqlUtils.ObtemBancoDeDadosSQLSever(conexaoSQLServer) Dim listaDB As String For Each listaDB In databases lstBDSQLServer.Items.Add(listaDB) Next End Sub

Cdigo do boto de Backup:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim sqlUtils As New SQLServer Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master" Try sqlUtils.BackupDatabase(conexaoSQLServer, lstBDSQLServer.SelectedItem, "D:\TesteSQLServerBackup.bak") MsgBox("BACKUP DO BANCO DE DADOS " & lstBDSQLServer.SelectedItem & " FEITO COM SUCESSO !") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub

Cdigo do boto de restaurao: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master" Dim sqlUtils As New SQLServer Try sqlUtils.RestauraDatabase(conexaoSQLServer, lstBDSQLServer.SelectedItem, "D:\TesteSQLServerBackup.bak") MsgBox("RESTAURAO DO BANCO DE DADOS " & lstBDSQLServer.SelectedItem & " EFETUADA COM SUCESSO !") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Executando o projeto temos na figura abaixo um exemplo obtido para minha mquina local:

Eu sei , apenas VB.NET mas eu gosto.

Vous aimerez peut-être aussi