Pela primeira vez tive a oportunidade de trabalhar com o SGBD SQL Server 2005 da Microsoft. Necessitava recuperar uma base de dados através de um arquivo de backup que me foi enviado. Muitos tutoriais e dicas encontram-se em uma breve busca na Internet, porém, encontrei dificuldade em achar algum material que correspondesse a solução desse meu caso em específico, inclusive na própria documentação do SQL Server disponibilizada na home do projeto pela Microsoft. Este tutorial serve tanto para recuperar dados de um backup gerado a partir do SQL Server 2000 e 2005.
A Linguaguem Transact-SQL (T-SQL)
A linguagem T-SQL foi desenvolvida pela Microsoft para trabalhar com base de dados do SQL Server. Baseada no padrão SQL-92 (padrão mais utilizado entre os SGBD’s), a linguagem Transact SQL adiciona alguns atributos (ou funcionalidades) que a tornam exclusiva ao SQL Server. Por exemplo, a cláusula TOP em um comando SELECT só existe no Transact-SQL. Se você pegar a instrução a seguir e executá-la no MySQL por exemplo, verá que esta irá gerar um erro de execução.
SELECT TOP 10 * FROM <tabela>
Isto acontece porque a cláusula TOP só existe na linguagem Transact-SQL, que é exclusiva do SQL Server. A instrução correspondente para o MySQL seria:
SELECT * FROM <tabela> LIMIT 10
Você utiliza das querys do T-SQL para criar, alterar e excluir objetos, bem como para inserir ou consultar dados em um banco de dados SQL Server. Por exemplo, quando necessita-se escrever uma procedure no SQL Server, você pode utilizar dos comandos CREATE TABLE, CREATE VIEW, CREATE PROCEDURE ou ainda manipular dados das tabelas através das diretivas INSERT, SELECT, DELETE e UPDATE.
Além disto, o SQL Server 2005 traz algumas inovações à linguagem Transact SQL. Dentre estas inovações, destacam-se as melhorias em queries para execução de procedures, triggers e funções e inserção de novas cláusulas que permitem a utilização de variáveis e expressões numéricas juntamente com as instruções INSERT, SELECT, UPDATE e DELETE.
Restaurando backup via T-SQL
Utilizando-se portanto da linguagem T-SQL, vamos gerar um script para recuperação de uma base de dados a partir de um arquivo de backup. Neste exemplo, utilizaremos da ferramenta SQL Server Management Studio, um ambiente integrado que permite aos desenvolvedores acessar, configurar, gerenciar, desenvolver e administrar os components do SQL Server 2005 através de uma interface gráfica. (Maiores informações em: http://msdn.microsoft.com/pt-br/express/aa718378.aspx).
Primeiramente, no Management Studio, selecione a opção New Query. A seguir, digite o seguinte comando para restaurar os arquivos lógicos do arquivo .bak.
RESTORE FILELISTONLY FROM DISK = ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.bak‘
Clique em Execute para rodar o script. Após isto, você deverá recuperar os arquivos referentes aos dados lógicos e de log (.mdf e .ldf) do arquivo (algo que se assemelha com a figura a seguir).
De posse do nome dos arquivos lógicos, podemos agora efetuar o restore do backup propriamente. Primeiramente, crie uma nova consulta e digite o seguinte comando:
RESTORE DATABASE teste_1
FROM DISK = ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.bak‘
WITH MOVE ‘teste’ TO ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.mdf‘ MOVE ‘teste_log’ TO ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste_log.ldf‘
Clicando novamente em Execute para rodar o script, deverá aparecer logo abaixo no console uma mensagem de confirmação da recuperação dos dados do arquivo de backup, como mostra a figura a seguir.
Pronto, sua base de dados foi devidamente recuperada. Após isto, dando um refresh no Objetct Explorer, podemos observar a inserção de nossa nova base de dados (circulado em vermelho na figura à seguir).
Referências:








