Come posso eseguire il backup di tabelle particolari in SQL Server 2008 utilizzando T-SQL Script


Risposte:


11

I tipi di backup dipendono dal modello di recupero di SQL Server. Ogni modello di recupero consente di eseguire il backup del database SQL Server completo o parziale o di singoli file o filegroup del database. Impossibile creare il backup a livello di tabella, non esiste tale opzione. Ma c'è una soluzione alternativa per questo

È possibile eseguire il backup della tabella di SQL Server in SQL Server. Esistono vari modi alternativi per eseguire il backup di una tabella in SQL Server SQL

  1. BCP (PROGRAMMA DI COPIA ALL'INVIO)
  2. Genera script tabella con dati
  3. Crea una copia della tabella usando SELECT INTO
  4. SALVA i dati della tabella direttamente in un file flat
  5. Esporta dati utilizzando SSIS verso qualsiasi destinazione

Qui sto spiegando solo il primo riposo che potresti conoscere

Metodo 1 - Eseguire il backup della tabella sql utilizzando BCP (PROGRAMMA COPIA BULK)

Per eseguire il backup di una tabella SQL denominata "Person.Contact", che si trova in SQL Server AdventureWorks, è necessario eseguire il seguente script, che

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

PRODUZIONE

inserisci qui la descrizione dell'immagine

Nota -

  1. È necessario disporre di privilegi di importazione / esportazione di massa
  2. In sopra Script -n indica i tipi di dati SQL nativi, che è la chiave durante il ripristino
  3. -T indica che ci si connette a SQL Server utilizzando l'autenticazione di Windows, nel caso in cui si desideri connettersi utilizzando l'autenticazione di SQL Server utilizzare -U -P
  4. Questo dirà anche, acceleri al trasferimento dei dati, nel mio caso si trattava di 212468,08 righe al secondo.
  5. Una volta completato questo comando, verrà creato un file denominato "AdventureWorks.Person.Contact_20120222" è una cartella di destinazione specificata

In alternativa , è possibile eseguire il BCP tramite il prompt dei comandi e digitare il seguente comando nel prompt dei comandi, entrambe le operazioni eseguono la stessa attività, ma mi piace il metodo sopra menzionato in quanto si tratta di salvare il tipo aprendo un prompt dei comandi e digitare.

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

inserisci qui la descrizione dell'immagine


9

Metodo 1:

Se si è interessati solo ai dati nelle tabelle e a quelli da utilizzare localmente all'interno dello stesso database e server, è possibile utilizzare la query seguente per eseguire il backup delle tabelle selezionate:

SELECT * INTO newtable1
FROM originalTable1

--- Per la tabella 2

SELECT * INTO newtable2
FROM originalTable2

e così via ... per n numero di tabelle

Questa istruzione CREA le tabelle chiamate newtable1, newtable1, .. quindi non è necessario crearlo in precedenza.

Nota * Questo metodo prende il backup abbastanza velocemente ma il principale svantaggio sarebbe che non trasporta le chiavi, gli indici e i vincoli della tabella e il backup è archiviato nel database non da qualche parte esternamente a un file

Metodo 2:

Se si desidera eseguire il backup della tabella su un altro server per qualsiasi soluzione di ripristino di emergenza o prevenzione della perdita di dati, è possibile eseguire lo scripting della tabella utilizzando l'opzione Genera script da Attività.

  1. Innanzitutto, fai clic con il pulsante destro del mouse sul database che contiene le tabelle di cui desideri eseguire il backup e scegli Attività -> Genera script

  2. Seleziona il tuo database dall'elenco di cui è necessario eseguire il backup delle tabelle

  3. La schermata successiva che appare sono le Opzioni script.

  4. Scorri verso il basso sulle opzioni dello script fino a visualizzare Opzioni tabella / vista. Vogliamo che sia vero quanto segue: Controlla vincoli, Dati script, Chiavi esterne, Chiavi primarie, Trigger e Chiavi univoche. (Oppure puoi scegliere quello che ti serve ovviamente). Seleziona Avanti e ci viene presentata la schermata Seleziona tipi di oggetto

  5. Seleziona Tabelle e premi il prossimo. Infine, scegli la tabella o le tabelle di cui desideri eseguire il backup e premi successivamente

Metodo 3:

È possibile utilizzare l' utilità bcp anche per i backup delle tabelle.


1

Non è possibile eseguire il backup di tabelle specifiche in un .bakfile, è possibile esportarle in CSV o copiarle o utilizzarle bcpper inserirle in un file.

Cosa si può fare se si desidera eseguire il backup di tabelle specifiche (e sono sempre le stesse) è spostarle in un file groupgruppo di file separato ed eseguire il backup.

Vedere Backup di file e filegroup per la documentazione.

Ad esempio, se si desidera eseguire il backup di file o filegroup specifici utilizzando T-SQL, è possibile utilizzare (dal collegamento)

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

1
Sfortunatamente, è necessario eseguire il backup di tutti i filegroup di lettura / scrittura insieme, quindi non è possibile sceglierne solo uno.
Kamil Gosciminski,

1

Sulla base del metodo 1 dalla risposta di KASQLDBA:

Creare un database separato per contenere la copia di backup delle tabelle. Modifica la query fornita da KASQLDBA in modo da selezionare dalla tabella originale e copiarla nel database alternativo.

SELECT * INTO MyNewDatabase.dbo.newtable1
FROM OriginalDatabase.dbo.originalTable1

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

È possibile creare uno script che elimini le tabelle nel nuovo database, quindi eseguire la selezione in comandi per ogni tabella richiesta. Se si desidera disporre di indici e altri oggetti disponibili, è possibile crearli nel nuovo database e troncare le tabelle prima di ripopolarle. Se si preferisce il troncamento, è necessario utilizzare le istruzioni insert al posto di select into.

Questa opzione ti fornirà un metodo per creare un file .BAK. È sufficiente eseguire un comando del database di backup dopo aver popolato le tabelle nel nuovo database.


1

Utilizzando la funzionalità di esportazione di massa di SSMS, ecco il metodo migliore e più semplice menzionato

Procedura guidata di importazione ed esportazione di SQL Server : la procedura guidata di importazione ed esportazione di SQL Server fornisce un'interfaccia utente grafica su un pacchetto SSIS (SQL Server Integration Services). Una volta creato, il pacchetto può essere automatizzato, per essere eseguito secondo una pianificazione. Può essere ulteriormente configurato e modificato utilizzando SQL Server Data Tools (SSDT)

Per iniziare, apri la procedura guidata di importazione ed esportazione, fai clic con il pulsante destro del mouse su un database e seleziona il sottomenu Attività -> Esporta dati.

inserisci qui la descrizione dell'immagine


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
kevinsky,

@kevinsky Sure! Ma almeno avresti dovuto votarlo!
Sayyed Dawood,

-1

Un altro metodo è usare script / sproc: DumpDataFromTable.sql da: https://github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts

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

Devi passare: nome dello schema e nome della tabella, quindi percorso di output in cui verrà salvato lo script creato (la cartella della nota deve già essere creata / esistere e sql deve avere il permesso di vedere il commento in sproc).

E se desideri, puoi aggiungere una condizione alla tabella (il filtro deve iniziare con AND per il momento)


questa procedura dipende da una procedura mancante PRC_WritereadFile
SubqueryCrunch

-2

Eseguire il backup di una singola tabella con i suoi dati da un database in SQL Server 2008:

SELECT * INTO  [dbo].[tbl_NewTable] 
FROM [dbo].[tbl_OldTable]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.