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