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