Scénář:
Pracujete jako vývojář SQL Serveru, musíte poskytnout nějaké aktualizační nebo odstraňovací skripty, abyste aktualizovali nebo odstranili data z tabulky. Chcete provést zálohu těchto záznamů, nebo pokud je tabulka malá, možná budete chtít zálohovat celou tabulku. spustit příkazy update nebo delete.Jak byste zálohovali celou tabulku nebo pouze záznamy, u kterých potřebujete příkazy update nebo delete spustit?
Řešení:
SQL Server neposkytuje zálohování na úrovni tabulky. Když říkáme, že chceme provést zálohu tabulky, mluvíme o vytvoření kopie existující tabulky se záznamy.Řekněme, že máme tabulku dbo.Customer s několika záznamy a chceme vytvořit záložní tabulku dbo.Customber_Bkp_TodayDate, můžeme použít níže uvedený skript
Nejprve vytvořte tabulku dbo.Customer s ukázkovými záznamy
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)
Nyní vytvoříme záložní tabulku dbo.Customber_Bkp_TodayDate se všemi záznamy, které jsou v dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer
Chcete-li vytvořit novou tabulku se záznamy, musíte použít Into NewTable from OldTable, jak je uvedeno výše.
Pokud nás zajímá pouze kopírování záznamů, kde FName='Aamir' bude náš dotaz vypadat takto níže.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
Spusťte výše uvedené skripty a zkontrolujte, zda jsou tabulky vytvořeny s požadovanými záznamy.
Jak zálohovat záznamy do nové tabulky ze stávající tabulky serveru SQL na serveru SQL |
Skripty použité v ukázce videa:
--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 ukázka:Jak rychle vytvořit novou tabulku z existující tabulky s daty na SQL Server