Restore com LocalDbA Microsoft lançou o LocalDb como um substituto ao SQL Server Express, quando usado como banco de dados de desenvolvimento, aquele que o desenvolvedor usa quando está codificando. Dessa forma ele não precisa instalar o SQL Server Express, que demanda permissões administrativas para gerenciar. Além disso, o LocalDb só sobe quando demandado, não usando memória e ciclos de CPU desnecessários. Eu sempre deixei meu SQL Server Express com start manual pra diminuir tempo de startup da máquina e deixá-la mais leve, e com frequência esquecia disso quando estava desenvolvendo, o que me obrigava a mandar alguns comandos no terminal pra subi-lo. Não mais. Com o LocalDb, basta mandar conectar e ele conecta. Depois de um tempo sem acessos ele desliga sozinho. Perfeito!

Só que um cliente me mandou um backup do banco. Fui restaurar no LocalDb, lógico, nem tenho mais SQL Server Express instalado (não vem mais por padrão com o Visual Studio 2012). Qual não foi minha surpresa ao notar que ele não subia? Tive vários errinhos na janela de Restore do SQL Server Management Studio. Descobri que faltam alguns itens no registro do Windows. Basta colocá-los lá e tudo funciona. Eu podia ter feito via Transact-SQL, mas não sou um grande administrador do SQL Server, isso fica um pouco mais avançado do que tenho interesse de saber fazer. Nesse tipo de setup, no Windows, prefiro a janela.

Então fica pra referência. Se você precisar, os itens estão em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLE.LOCALDB\MSSQLServer. São os seguintes campos, todos string:

“DefaultData”=”<seu perfil>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0”
“DefaultLog”=”<seu perfil>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0”
“BackupDirectory”=”<qualquer diretório que exista, pode ser c:\temp>”

Onde está seu perfil, troque pelo caminho do seu perfil. Se seu user é giovanni, seria “C:\users\giovanni”.

Feito isso, basta clicar com o botão direito no banco no SQL Server Management Studio, daí Tasks, e escolher Restore > Database.