AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 102745
Accepted
Firoz Tennali
Firoz Tennali
Asked: 2015-05-29 21:16:45 +0800 CST2015-05-29 21:16:45 +0800 CST 2015-05-29 21:16:45 +0800 CST

Como posso fazer backup de tabelas específicas no SQL Server 2008 usando T-SQL Script

  • 772

Eu quero fazer um backup de determinadas tabelas disponíveis no meu banco de dados em um .bakarquivo, e tudo isso deve ser feito usando um script T-SQL.

sql-server sql-server-2008
  • 7 7 respostas
  • 201251 Views

7 respostas

  • Voted
  1. Best Answer
    Tufan Chand
    2015-05-29T22:02:51+08:002015-05-29T22:02:51+08:00

    Os tipos de backup dependem do modelo de recuperação do SQL Server. Cada modelo de recuperação permite fazer backup do banco de dados SQL Server inteiro ou parcial ou de arquivos individuais ou grupos de arquivos do banco de dados. O backup em nível de tabela não pode ser criado, não existe essa opção. Mas existe uma solução para isso

    Fazendo backup da tabela do SQL Server possível no SQL Server. Existem várias maneiras alternativas de fazer backup de uma tabela no sql SQL Server

    1. BCP (PROGRAMA DE CÓPIA EM GRANDE)
    2. Gerar Script de Tabela com dados
    3. Faça uma cópia da tabela usando SELECT INTO
    4. SALVAR dados da tabela diretamente em um arquivo simples
    5. Exporte dados usando SSIS para qualquer destino

    Aqui estou explicando apenas o primeiro descanso que você pode estar sabendo

    Método 1 – Backup da tabela sql usando BCP (BULK COPY PROGRAM)

    Para fazer backup de uma tabela SQL chamada "Person.Contact", que reside no SQL Server AdventureWorks, precisamos executar o seguinte script, que

    -- SQL Table Backup
    -- Developed by DBATAG, www.DBATAG.com
    DECLARE @table VARCHAR(128),
    @file VARCHAR(255),
    @cmd VARCHAR(512)
    SET @table = 'AdventureWorks.Person.Contact' --  Table Name which you want    to backup
    SET @file = 'C:\MSSQL\Backup\' + @table + '_' + CONVERT(CHAR(8), GETDATE(), 112) --  Replace C:\MSSQL\Backup\ to destination dir where you want to place table data backup
    + '.dat'
    SET @cmd = 'bcp ' + @table + ' out ' + @file + ' -n -T '
    EXEC master..xp_cmdshell @cmd
    

    RESULTADO

    insira a descrição da imagem aqui

    Observação -

    1. Você deve ter privilégios de importação/exportação em massa
    2. No script acima -n denota tipos de dados SQL nativos, que são fundamentais durante a restauração
    3. -T indica que você está se conectando ao SQL Server usando a Autenticação do Windows, caso queira se conectar usando a Autenticação do SQL Server, use -U -P
    4. Isso também dirá, você acelera a transferência de dados, no meu caso, foram 212.468,08 linhas por segundo.
    5. Depois que esses comandos forem concluídos, isso criará um arquivo chamado "AdventureWorks.Person.Contact_20120222" é uma pasta de destino especificada

    Alternativamente , você pode executar o BCP via prompt de comando e digitar o seguinte comando no prompt de comando, ambas as operações executam a mesma atividade, mas eu gosto do método mencionado acima, pois é salvar tipo ao abrir um prompt de comando e digitar.

    bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
    

    insira a descrição da imagem aqui

    • 13
  2. KASQLDBA
    2015-05-29T21:44:24+08:002015-05-29T21:44:24+08:00

    Método 1:

    Se você está preocupado apenas com os dados nas tabelas e que devem ser usados ​​localmente dentro do mesmo banco de dados e servidor, você pode usar a consulta abaixo para fazer backup das tabelas selecionadas:

    SELECT * INTO newtable1
    FROM originalTable1
    

    --- Para a tabela 2

    SELECT * INTO newtable2
    FROM originalTable2
    

    e assim por diante... para n número de tabelas

    Esta declaração IRÁ CRIAR as tabelas chamadas newtable1, newtable1,.. assim você não precisa criá-la previamente.

    Nota* Este método leva o backup bastante rápido mas a principal desvantagem seria que ele não carrega as Chaves, Índices e Restrições da tabela e o backup é armazenado dentro do banco de dados não em algum lugar externo a um arquivo

    Método 2:

    Se você deseja fazer backup da tabela em outro servidor para qualquer solução de recuperação de desastres ou prevenção contra perda de dados, você pode criar scripts na tabela usando a opção Gerar scripts em Tarefas.

    1. Primeiro, clique com o botão direito do mouse no banco de dados que contém as tabelas que você deseja fazer backup e escolha Tarefas -> Gerar Scripts

    2. Selecione seu banco de dados na lista cujas tabelas precisam ser copiadas

    3. A próxima tela que aparece é as Opções de Script.

    4. Role para baixo nas opções de script até ver Opções de tabela/exibição. Queremos que o seguinte seja verdadeiro: Verificar restrições, dados de script, chaves estrangeiras, chaves primárias, gatilhos e chaves exclusivas. (Ou você pode escolher o que precisar, é claro). Selecione Next e somos apresentados à tela Select Object Types

    5. Selecione Tabelas e clique em próximo. Por fim, escolha a mesa ou mesas que deseja fazer backup e clique em próximo

    Método 3:

    Você também pode usar o utilitário bcp para backups de tabela.

    • 11
  3. Tom V
    2015-05-29T23:32:45+08:002015-05-29T23:32:45+08:00

    Você não pode fazer backup de tabelas específicas para um .bakarquivo, você pode exportá-las para csv ou scriptá-las ou usá bcp-las para colocá-las em um arquivo.

    O que você pode fazer se quiser fazer backup de tabelas específicas (e elas são sempre as mesmas) é movê-las para um grupo separado file groupe fazer backup desse grupo de arquivos.

    Consulte Fazer backup de arquivos e grupos de arquivos para obter a documentação.

    Por exemplo, se você deseja fazer backup de arquivos ou grupos de arquivos específicos usando T-SQL, você pode usar (no link)

    --Back up the files in SalesGroup1.
    BACKUP DATABASE Sales
       FILEGROUP = 'SalesGroup1',
       FILEGROUP = 'SalesGroup2'
       TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
    GO
    

    e

    --Backup the files in the SalesGroup1 secondary filegroup.
    BACKUP DATABASE Sales
       FILE = 'SGrp1Fi2', 
       FILE = 'SGrp2Fi2' 
       TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
    GO
    
    • 2
  4. Gary
    2015-05-30T06:24:21+08:002015-05-30T06:24:21+08:00

    Com base no Método 1 da resposta do KASQLDBA:

    Crie um banco de dados separado para manter a cópia de backup das tabelas. Modifique a consulta fornecida pelo KASQLDBA para que você selecione a partir de sua tabela original e copie para o banco de dados alternativo.

    SELECT * INTO MyNewDatabase.dbo.newtable1
    FROM OriginalDatabase.dbo.originalTable1
    
    --- For table 2
    SELECT * INTO MyNewDatabase.dbo.newtable2
    FROM OriginalDatabase.dbo.originalTable2
    

    Você pode criar um script que elimine as tabelas no novo banco de dados e, em seguida, execute o select em comandos para cada tabela necessária. Se você deseja ter índices e outros objetos disponíveis, você pode construí-los em seu novo banco de dados e truncar as tabelas antes de repovoá-las. Se você preferir truncamento, precisará usar instruções insert no lugar de select into.

    Esta opção fornecerá um método para criar um arquivo .BAK. Você simplesmente executa um comando de backup do banco de dados depois de preencher as tabelas no novo banco de dados.

    • 1
  5. Sayyed Dawood
    2019-07-26T01:58:51+08:002019-07-26T01:58:51+08:00

    Usando o recurso de exportação em massa do SSMS, aqui está o melhor e mais fácil método mencionado

    Assistente de importação e exportação do SQL Server : O assistente de importação e exportação do SQL Server fornece uma interface gráfica do usuário em um pacote SQL Server Integration Services (SSIS). Uma vez criado, o pacote pode ser automatizado, para ser executado em um cronograma. Ele pode ser configurado e modificado usando o SQL Server Data Tools (SSDT)

    Para começar, abra o assistente de importação e exportação, clique com o botão direito do mouse em um banco de dados e selecione o submenu Tarefas -> comando Exportar dados.

    insira a descrição da imagem aqui

    • 1
  6. Oleg Cio
    2017-12-16T04:34:23+08:002017-12-16T04:34:23+08:00

    Outro método é usar script/sproc: DumpDataFromTable.sql de: https://github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts

     EXECUTE [dbo].[DumpDataFromTable] @SchemaName = 'dbo', @TableName = 'Table', @PathOut = 'c:\temp\Scripts'
    

    Você tem que passar: nome do esquema e nome da tabela, então caminho de saída onde o script criado será salvo (note a pasta já deve ser criada/existir e o sql tem permissão veja o comentário no sproc).

    E se você quiser, pode adicionar uma condição à tabela (o filtro deve começar com AND no momento)

    • -1
  7. JIYAUL MUSTAPHA
    2019-05-26T02:57:10+08:002019-05-26T02:57:10+08:00

    Faça backup de uma única tabela com seus dados de um banco de dados no SQL Server 2008:

    SELECT * INTO  [dbo].[tbl_NewTable] 
    FROM [dbo].[tbl_OldTable]
    
    • -2

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve