Como fazer backup de nível de tabela (despejo) no MS SQL Server 2005/2008?
Você não pode usar o comando BACKUP DATABASE
para fazer o backup de uma única tabela, a menos que a tabela em questão seja alocada para sua própria FILEGROUP
.
O que você pode fazer, como sugeriu, é exportar os dados da tabela para um arquivo CSV. Agora, para obter a definição da sua tabela, você pode 'Script out' o script CREATE TABLE
.
Você pode fazer isso no SQL Server Management Studio, por:
clique com o botão direito em Banco de Dados> Tarefas> Gerar Script
Você pode, então, selecionar a tabela que deseja criar e também incluir todos os objetos associados, como restrições e índices.
a fim de obter o DATA
juntamente com apenas o schema
, você tem que escolher Advanced
na guia de opções de script definido, e na seção GENERAL
defina o Types of data to script
selecione Schema and Data
Espero que isso ajude, mas não hesite em contactar-me diretamente se você precisar de mais assistência.
Estou usando o utilitário de cópia em massa para obter backups em nível de tabela
exportar:
bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
importar:
bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
como você pode ver, você pode exportar com base em qualquer consulta, para que você possa até fazer backups incrementais com isso. Além disso, é programável por script, em oposição aos outros métodos mencionados aqui que usam o SSMS.
Aqui estão os passos que você precisa. O passo 5 é importante se você quiser os dados. A etapa 2 é onde você pode selecionar tabelas individuais.
EDIT a versão da pilha não é perfeitamente legível ... aqui está uma imagem em tamanho normal http://i.imgur.com/y6ZCL.jpg
Você pode executar a consulta abaixo para fazer um backup da tabela existente, que criaria uma nova tabela com a estrutura existente da tabela antiga junto com os dados.
select * into newtablename from oldtablename
Para copiar apenas a estrutura da tabela, use a consulta abaixo.
select * into newtablename from oldtablename where 1 = 2
Isso é semelhante à solução de qntmfred , mas usando um dump de tabela direto. Esta opção é um pouco mais rápida (veja docs do BCP ):
Exportar:
bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
importar:
bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Se você está procurando algo como o DUMP
do MySQL, então uma boa notícia: o SQL Server 2008 Management Studio adicionou essa habilidade.
No SSMS, basta clicar com o botão direito do mouse no banco de dados em questão e selecionar Tasks> Generate Scripts. Então, na segunda página do assistente de opções, certifique-se de selecionar que você gostaria que o script data também , e ele irá gerar o que equivale a um arquivo DUMP
para você.
Crie um novo grupo de arquivos, coloque essa tabela nele e faça backup desse grupo de arquivos apenas.
Eu não sei, se vai corresponder ao problema descrito aqui. Eu tive que tomar o backup incremental de uma mesa! (Somente novos dados inseridos devem ser copiados). Eu costumava criar um pacote DTS onde.
Eu busco novos registros (com base em uma coluna 'status') e transfiro os dados para o destino. (Através de 'Transform Data Task')
Então atualizei a coluna 'status'. (Através de 'Execute SQL Task')
Eu tive que consertar o 'fluxo de trabalho' corretamente.
Você pode usar o livre Database Publishing Wizard da Microsoft para gerar arquivos de texto com scripts SQL (CREATE TABLE e INSERT INTO).
Você pode criar tal arquivo para uma única tabela, e você pode "restaurar" a tabela completa incluindo os dados simplesmente executando o script SQL.
Use o Assistente de Importação e Exportação do SQL Server.
Cada modelo de recuperação permite fazer backup de Um banco de dados inteiro ou parcial do SQL Server Ou arquivos individuais ou grupos de arquivos de No banco de dados. Backups em nível de tabela Não podem ser criados.
Um aplicativo gratuito chamado SqlTableZip fará o trabalho. Basicamente, você escreve a consulta any (que, é claro, também pode ser [select * from table]) e o aplicativo cria um arquivo compactado com todos os dados, que podem ser restaurados posteriormente.
Se você quiser restaurar uma tabela depois que alguém tiver excluído por engano as linhas dela, talvez você possa dar uma olhada nos instantâneos do banco de dados. Você poderia restaurar a tabela com bastante facilidade (ou um subconjunto das linhas) do instantâneo. Veja http://msdn.Microsoft.com/pt-br/library/ms175158.aspx
O BMC Recovery Manager (anteriormente conhecido como SQLBacktrack) permite a recuperação point-in-time de objetos individuais em um banco de dados (também conhecido como tabelas). Não é barato, mas faz um trabalho fantástico: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
O Handy Backup faz automaticamente arquivos de despejo do MS SQL Server, incluindo o MSSQL 2005/2008. Esses dumps são arquivos binários em nível de tabela, contendo cópias exatas do conteúdo específico do banco de dados.
Para fazer um simples despejo com o Handy Backup, siga as próximas instruções:
Agora, execute sua nova tarefa clicando em um ícone antes de seu nome ou aguarde o horário programado. O Handy Backup criará automaticamente um dump para o seu banco de dados. Em seguida, abra o seu destino de backup. Você encontrará uma pasta (ou algumas pastas) com seus backups do MS SQL. Qualquer pasta desse tipo conterá um arquivo de despejo no nível de tabela, consistindo de algumas tabelas binárias e configurações compactadas em um único Zip.
Handy Backup pode salvar dumps para MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes e qualquer banco de dados SQL genérico com um driver ODBC. Alguns desses bancos de dados exigem etapas adicionais para estabelecer conexões entre o DBMS e o Handy Backup.
As ferramentas descritas acima geralmente despejam os bancos de dados SQL como a sequência de comandos SQL no nível da tabela, tornando esses arquivos prontos para qualquer modificação manual necessária.
Você provavelmente tem duas opções, pois o SQL Server não suporta backups de tabelas. Ambos começariam com o script da criação da tabela. Em seguida, você pode usar a opção Script de tabela - INSERT, que gerará muitas instruções de inserção, ou poderá usar os serviços de integração (DTS com 2000) ou semelhantes para exportar os dados como CSV ou semelhantes.