sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo hacer una copia de seguridad o crear una nueva tabla a partir de una tabla existente de SQL Server en SQL Server - Tutorial de SQL Server/TSQL, parte 105

Escenario:

Está trabajando como desarrollador de SQL Server, debe proporcionar algunos scripts de actualización o eliminación para actualizar o eliminar datos de una tabla. Desea realizar una copia de seguridad de esos registros o, si la tabla es pequeña, es posible que desee realizar una copia de seguridad de toda la tabla antes de hacerlo. ejecutar declaraciones de actualización o eliminación.

¿Cómo haría una copia de seguridad de toda la tabla o solo de los registros en los que necesita ejecutar declaraciones de actualización o eliminación?

Solución:

SQL Server no proporciona copia de seguridad a nivel de tabla. Cuando decimos que queremos hacer una copia de seguridad de la tabla, estamos hablando de hacer una copia de la tabla existente con registros.
Digamos que tenemos una tabla dbo.Customer con pocos registros y queremos crear una tabla de respaldo dbo.Customber_Bkp_TodayDate, podemos usar el siguiente script
Primero cree la tabla dbo.Customer con registros de muestra
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)
 
 
 Ahora vamos a crear la tabla de respaldo dbo.Customber_Bkp_TodayDate con todos los registros que están presentes en dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Para crear una nueva tabla con registros, debe usar Into NewTable from OldTable como se muestra arriba.
Si solo estamos interesados ​​en copiar registros donde FName='Aamir', nuestra consulta será como a continuación.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Ejecute los scripts anteriores y verifique las tablas si se crearon con los registros requeridos.
Cómo hacer una copia de seguridad de los registros en una tabla nueva desde una tabla de SQL Server existente en SQL Server


Scripts utilizados en la demostración de 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
 


Demostración en video:Cómo crear rápidamente una nueva tabla a partir de una tabla existente con datos en SQL Server