Como despejar um banco de dados do Microsoft SQL Server em um script SQL?

125

Existe alguma maneira de exportar um banco de dados do Microsoft SQL Server para um script sql?

Estou procurando algo que se comporte de maneira semelhante ao mysqldump, usando um nome de banco de dados e produzindo um único script que recrie todas as tabelas, procedimentos armazenados, reinsira todos os dados etc.

Eu já vi http://vyaskn.tripod.com/code.htm#inserts , mas idealmente quero algo para recriar tudo (não apenas os dados) que funcione em uma única etapa para produzir o script final.

Matt Sheppard
fonte
@ Matt Sim, ele não exporta os dados. Foi por isso que mencionei que você deveria combiná-lo com o script que sugeriu. Este método constrói um script na ordem correta.
Julio César
Na verdade, no Mangement Studio 2008, você só precisa ativar a opção "exportar dados", e o script conterá instruções de esquema e inserção.
user24161
@MattSheppard, considere aceitar uma das respostas
030 de

Respostas:

111

No SQL Server Management Studio, clique com o botão direito do mouse no banco de dados e selecione Tarefas / Gerar scripts. Siga o assistente e você obterá um script que recria a estrutura de dados na ordem correta, de acordo com as chaves estrangeiras. Na etapa do assistente intitulada "Definir opções de script", escolha "Avançado" e modifique a opção "Tipos de dados em script" para "Esquema e dados"

DICA: Na etapa final, selecione "Script para uma nova janela de consulta", funcionará muito mais rápido dessa maneira.

Julio Cesar
fonte
18
Lembre-se de entrar em opções avançadas e dizer para ele criar um script não apenas no esquema, mas também nos dados.
RomanSt
2
@romkyns merece todos os votos positivos! "Tipos de dados para script" é o nome exato da opção. Você deseja selecionar "Esquema e dados".
Solidau
2
O principal problema com os scripts gerados a partir do SSMS é que eles não estão ordenados corretamente para levar em conta as dependências. Isso não é um problema para bancos de dados pequenos, onde você pode fazer isso manualmente, mas definitivamente é um problema quando o banco de dados obtém mais de 50 objetos. Até agora, usamos com sucesso o ApexSQL Script para isso. É uma ferramenta premium, mas você pode usá-la no modo de teste para concluir o trabalho. Eu acho que o Red Gate também tem uma ferramenta semelhante.
David Smithers
34

Tente o Assistente para publicação de banco de dados do Sql Server . Pode ser necessário reordenar o script para executá-lo de uma só vez, devido às dependências, mas ele incluirá seu esquema e dados.

Se você não tiver objetos do SQL XMO 2005 instalados, ocorrerá um erro ao executar o assistente . Você desejará a coleção de objetos de gerenciamento do Microsoft SQL Server 2005

Rob Allen
fonte
5
Na verdade, você não precisa reordenar o script, porque ele elimina todas as restrições, cria o esquema, insere os dados e, finalmente, recria as restrições.
911 Daniel Silveira
Incrível, isso é muito legal
Beep beep
Essa é uma ótima ferramenta, mas suporta apenas o SQL Server 2015. Que tal 2008 e posterior?
Nam G VU
12

Achei o SQL Dumper bastante útil. É gratuito para que você possa experimentá-lo. Permite escolher as tabelas e colunas do banco de dados, visualizações e até os resultados de consultas personalizadas como instruções de inserção SQL.

Marc Climent
fonte
A última versão estável não funciona com procedimentos armazenados.
VMAtm
1
A última versão pode ser baixada em download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
Raynet
7

Não encontrando a ferramenta certa, decidi criar minha própria: um utilitário de linha de comando sqlserverdump. Confira em http://sqlserverdump.codeplex.com/ . Ele recriará o esquema e os dados em uma única etapa.

Daniel
fonte
6

Experimente o DBSourceTools . Ele foi projetado para criar um script de um banco de dados de origem e reimplantá-lo em um banco de dados de destino. Faz scripts de esquema e dados.


fonte
6

A solução recomendada funciona apenas no sql 2000 e 2005. Se você deseja fazer isso no SQL 2008,

Você pode fazer isso com o SQL 2008 sem outros plug-ins. Clique com o botão direito do mouse no banco de dados e selecione "Tarefas -> Gerar scripts ...". Selecione o banco de dados e o que você deseja fazer backup. Clique em Avançar e defina os "Dados do script" como true.

Mais documentação no link:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects /

tzerb
fonte
2

O Assistente para Publicação de Banco de Dados do SQL Server parece ser a melhor maneira de fazer isso. O problema é que ele não parece funcionar no Windows 7. Eu precisei usar o meu computador antigo para usá-lo. Do lado positivo, ele funciona com versões mais antigas do SQL Server, como 2000.

Para versões e sistemas operacionais SQL mais recentes, vale a pena examinar este software: http://sqlbackupandftp.com/


fonte
0

Ombelt é uma boa ferramenta para exportar bancos de dados do servidor MS SQL. www.ombelt.com

muito parecido com outras instalações de despejo da DB.

Funciona para mim.

Tim Williscroft
fonte
0

Verifique o projeto Microsoft SQL Server Schema Dump ( mssql-schema-dumpferramenta no GitHub ).

Uso: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

A exportação suporta:

  • DB: Esquema, Tipos de Usuário, Tipos de Tabela de Usuário, Disparadores, Catálogos de Texto Completo, StopLists de Texto Completo, Procedimentos Armazenados, Funções
  • DB.Tables: esquema, gatilhos, índices, DRI, estatísticas
  • DB.Views: Esquema, gatilhos, índices, DRI, estatísticas
kenorb
fonte