it-swarm-pt.tech

Backup em nível de tabela

Como fazer backup de nível de tabela (despejo) no MS SQL Server 2005/2008?

89
user82431

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.

86
John Sansom

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.

54
kenwarner

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

Here are the steps from John Sansom's answer

44
Alex C

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
19
Haripriya

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
6
Diego

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ê.

4
Michael K. Campbell

Crie um novo grupo de arquivos, coloque essa tabela nele e faça backup desse grupo de arquivos apenas.

3
Konstantin Tarkus

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.

  1. Eu busco novos registros (com base em uma coluna 'status') e transfiro os dados para o destino. (Através de 'Transform Data Task') 

  2. Então atualizei a coluna 'status'. (Através de 'Execute SQL Task')

Eu tive que consertar o 'fluxo de trabalho' corretamente.

2
azmnoman

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.

2
Christian Specht

Use o Assistente de Importação e Exportação do SQL Server.

  1. ssms
  2. Abra o mecanismo de banco de dados
  3. Alt. clique no banco de dados que contém a tabela para exportar
  4. Selecione "Tarefas"
  5. Selecione "Exportar dados ..."
  6. Siga o assistente
2
EndUzr

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.

De: Visão geral do backup (SQL Server)

1
Mitch Wheat

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.

Link: http://www.doccolabs.com/products_sqltablezip.html

0
asapir

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

0
SPE109

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

0
Matt Rogish

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:

  1. Instale o Handy Backup e crie uma nova tarefa de backup.
  2. Selecione “MSSQL” em uma etapa 2 como uma fonte de dados. Em uma nova janela, marque um banco de dados para fazer backup.
  3. Selecione entre diferentes destinos onde você armazenará seus backups.
  4. Em uma etapa 4, selecione a opção de backup "Completa". Configure um registro de data e hora se você precisar.
  5. Pule uma etapa 5, a menos que você tenha necessidade de compactar ou criptografar um arquivo de despejo resultante.
  6. Em uma etapa 6, configure um agendamento para uma tarefa para criar despejos periodicamente (caso contrário, execute uma tarefa manualmente).
  7. Novamente, pule um passo 7 e dê um nome à sua tarefa no passo 8. Você terminou a tarefa!

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.

Outras bases de dados

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.

0
Mark Geek

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.

0
Miles D