Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come eseguire il backup o creare una nuova tabella da una tabella SQL Server esistente in SQL Server - Tutorial SQL Server/TSQL Parte 105

Scenario:

Stai lavorando come sviluppatore di SQL Server, devi fornire alcuni script di aggiornamento o eliminazione per aggiornare o eliminare i dati da una tabella. Vuoi eseguire il backup di quei record o se la tabella è piccola potresti voler eseguire il backup dell'intera tabella prima di eseguire l'aggiornamento o l'eliminazione delle istruzioni.

Come eseguire il backup dell'intera tabella o solo dei record su cui è necessario eseguire l'aggiornamento o l'eliminazione delle istruzioni?

Soluzione:

SQL Server non fornisce il backup a livello di tabella. Quando diciamo che vogliamo fare il backup della tabella, stiamo parlando di fare una copia della tabella esistente con record.
Diciamo se abbiamo dbo.Customer Table con pochi record e vogliamo creare una tabella di backup dbo.Customber_Bkp_TodayDate, possiamo utilizzare lo script seguente
Crea prima una tabella dbo.Customer con record di esempio
USE yourDatabaseName
Go
Create Table dbo.Customer(
Id int identity(1,1),
FName VARCHAR(50),
LName VARCHAR(50),
Age int,
DOB Date,
Salary Numeric(6,2))

--Use the Insert Into with Values single Statement
Insert into dbo.Customer
Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
('Raza','M',33,'1983-03-03',4900.34),
('John','Smith',26,'1990-04-05',5000.50)
 
 
 Ora creiamo la tabella di backup dbo.Customber_Bkp_TodayDate con tutti i record presenti in dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Per creare una nuova tabella con i record, devi usare Into NewTable da OldTable come mostrato sopra.
Se siamo interessati solo a copiare i record in cui FName='Aamir' la nostra query sarà come sotto.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Esegui gli script sopra e controlla le tabelle se create con i record richiesti.
Come eseguire il backup dei record in una nuova tabella da una tabella SQL Server esistente in SQL Server


Script utilizzati nella demo video:
--Take the backup or create table for all records
Select * into [YourDBName].dbo.Customer_20160510  from [dbo].[Customer]

--Create table for selected records
Select * into [YourDBName].dbo.Customer_20160510_TwoRecords from [dbo].[Customer]
where id<=2

--Check if table is created successfully
Select * From [YourDBName].dbo.Customer_20160510_TwoRecords

Select * from [dbo].[Customer]

--Update Records in current table
update [dbo].[Customer]
set LName=LName+' Test'
where id<=2


--Update records in current table from backup table
update d 
set d.LName=s.LName
from [YourDBName].dbo.Customer_20160510_TwoRecords s
inner join [dbo].[Customer] d
on s.id=d.id
 


Video demo:come creare rapidamente una nuova tabella da una tabella esistente con dati in SQL Server