Quero fazer um backup de tabelas específicas disponíveis no meu banco de dados em um .bak
arquivo e tudo isso deve ser feito usando um script T-SQL.
fonte
Quero fazer um backup de tabelas específicas disponíveis no meu banco de dados em um .bak
arquivo e tudo isso deve ser feito usando um script T-SQL.
Os tipos de backup dependem do modelo de recuperação do SQL Server. Todo modelo de recuperação permite fazer backup de um banco de dados inteiro ou parcial do SQL Server ou de arquivos ou grupos de arquivos individuais do banco de dados. O backup em nível de tabela não pode ser criado, não existe essa opção. Mas há uma solução alternativa para isso
Possível fazer backup da tabela do SQL Server no SQL Server. Existem várias maneiras alternativas de fazer backup de uma tabela no SQL Server SQL
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 denominada "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
Nota -
Como alternativa , 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 acima mencionado, pois esse é o tipo save ao abrir um prompt e o tipo de comando.
bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
Método 1:
Se você está preocupado apenas com dados nas tabelas e que devem ser usados localmente no mesmo banco de dados e servidor, use 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 criará as tabelas denominadas newtable1, newtable1, .. portanto, você não precisa criá-lo anteriormente.
Nota * Esse método leva o backup muito rápido, mas a principal desvantagem seria que ele não transporta as Chaves, índices e restrições da tabela e o backup é armazenado no banco de dados, não em um local 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 desastre ou prevenção contra perda de dados, poderá criar um script da tabela usando a opção Gerar scripts em Tarefas.
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
Selecione seu banco de dados na lista cujas tabelas precisam de backup
A próxima tela que aparece é as Opções de script.
Role para baixo nas opções de script até ver Tabela / Exibir opções. Queremos que o seguinte seja verdadeiro: Verifique restrições, dados de script, chaves estrangeiras, chaves primárias, gatilhos e chaves exclusivas. (Ou você pode escolher o que precisar, é claro). Selecione Avançar e somos apresentados à tela Selecionar tipos de objeto
Selecione Tabelas e clique em Avançar. Por fim, escolha a tabela ou tabelas que você deseja fazer backup e clique em Avançar
Método 3:
Você também pode usar o utilitário bcp para backups de tabelas.
Você não pode fazer backup de tabelas específicas para um .bak
arquivo, pode exportá-las para csv ou bcp
colocá-las em script ou usá -las para colocá-las em um arquivo.
O que você pode fazer se desejar fazer backup de tabelas específicas (e elas sempre são iguais) é movê-las para um file group
grupo de arquivos separado e fazer backup.
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 o 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
Com base no método 1 da resposta do KASQLDBA:
Crie um banco de dados separado para armazenar a cópia de backup das tabelas. Modifique a consulta fornecida pelo KASQLDBA para selecionar na tabela original e copiar no banco de dados alternativo.
Você pode criar um script que descarte as tabelas no novo banco de dados e, em seguida, execute o comando select em todas as tabelas necessárias. Se você deseja ter índices e outros objetos disponíveis, crie esses no seu novo banco de dados e trunque as tabelas antes de preenchê-las novamente. Se você preferir o 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 banco de dados de backup depois de preencher as tabelas no novo banco de dados.
fonte
Usando o recurso de exportação em massa do SSMS, aqui está o melhor e mais fácil método mencionado
fonte
Outro método é usar o script / sproc: DumpDataFromTable.sql em: https://github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts
Você deve passar: nome do esquema e nome da tabela e, em seguida, caminho de saída onde o script criado será salvo (a pasta de anotações já deve ter sido criada / existir e o sql deve ter permissão para ver o comentário no sproc).
E se você quiser, pode adicionar uma condição à tabela (o filtro deve começar com AND no momento)
fonte
Faça backup de uma única tabela com seus dados de um banco de dados no SQL Server 2008:
fonte