Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como fazer backup ou criar uma nova tabela a partir de uma tabela existente do SQL Server no SQL Server - SQL Server / TSQL Tutorial Part 105

Cenário:

Você está trabalhando como desenvolvedor do SQL Server, você precisa fornecer alguns scripts de atualização ou exclusão para atualizar ou excluir dados de uma tabela. execute instruções de atualização ou exclusão.

Como você faria backup de toda a tabela ou apenas dos registros nos quais você precisa executar instruções de atualização ou exclusão?

Solução:

O SQL Server não fornece backup em nível de tabela. Quando dizemos que queremos fazer o backup da tabela, estamos falando em fazer uma cópia da tabela existente com registros.
Digamos que temos dbo.Customer Table com poucos registros e queremos criar uma tabela de backup dbo.Customber_Bkp_TodayDate, podemos usar o script abaixo
Primeiro crie a tabela dbo.Customer com registros de amostra
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)
 
 
 Agora vamos criar a tabela de backup dbo.Customber_Bkp_TodayDate com todos os registros que estão presentes em dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Para criar uma nova tabela com registros, você deve usar Into NewTable de OldTable como mostrado acima.
Se estivermos interessados ​​apenas em copiar registros onde FName='Aamir' nossa consulta será como abaixo.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Execute os scripts acima e verifique as tabelas se criadas com os registros necessários.
Como fazer backup de registros em uma nova tabela a partir de uma tabela existente do SQL Server no SQL Server


Scripts usados ​​na demonstração do vídeo:
--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
 


Demonstração em vídeo:como criar uma nova tabela a partir de uma tabela existente com dados no SQL Server rapidamente