Abra o SQL Server Management Studio (ou Express) e conecte-se ao Server. Clique com o botão direito sobre a base de dados e siga em Task (Tarefas) e escolha Generate Scritps (Gerar Scripts). Na tela de seleção de base, marque a opção Script all objects in the selected database (Scritp de todos os objetos da base selecionada) e avance. Nessa próxima tela procure os itens abaixo e atribua os seguintes valores:
- Script for Server Version (Versão de Script do Server): SQL Server 2005
- Script Data (Script de Dados): True
- Script USE DATABASE: False
O próximo passo é executar o script gerado na base de destino. Crie a base de destino vazia e agora temos duas opções:
- Se o script gerado for pequeno (ou seja base pequena) podemos simplesmente abrir pelo próprio SQL Server Management e executar como se fosse Querys consecutivas;
- Se o script for grande vamos usar um artifícío para isso.
Abra o Prompt de Comando (emulador do DOS no Windows) e digite o seguinte comando:
sqlcmd -U thiago -P blog -S THIAGOMARCAL\SQLEXPRESS -d BaseBlog -i C:\ScriptSQL.sql -o C:\LogExecucao.txt
Explicando os atributos:
- U: informa o nome do usuário que está conectando (no caso, o usuário thiago);
- P: informa a senha do usuário (a senha é blog);
- S: nome do servidor (como está na minha máquina a instância é THIAGOMARCAL\SQLEXPRESS);
- d: nome da base nova que receberá o resultado do script (BaseBlog é o nome da nova base criada);
- i: local onde salvei o script de dados e que usarei como entrada;
- o: arquivo de texto contendo o resultado da operações (log para análise - opcional).
- Cannot Open Datafile
- Insufficient memory
- Out of Memory Exception
3 comentários:
O comando não funcionou para mim, acho que por causa da autenticação para acessar a base no sql server, que para mim exige um usuário (sa) e senha...
Alguma dica para usar o comando para essa maneira?
Alan, no comando basta alterar assim:
sqlcmd -U sa -P senha -S SERVIDOR\INSTANCIA -d BancoDeDados -i C:\ScriptSQL.sql -o C:\LogExecucao.txt
Thiago, muito obrigado!
Realmente funcionou certinho.
Recomendo a quem mais precisar do recurso.
Para mim foi 100% eficaz!
Postar um comentário