Сценарий:
Вие работите като разработчик на SQL Server, трябва да предоставите някои скриптове за актуализиране или изтриване, за да актуализирате или изтриете данни от таблица. Искате да направите резервно копие на тези записи или ако таблицата е малка, може да искате да архивирате цялата таблица, преди да стартирайте изявления за актуализиране или изтриване.Как бихте архивирали цялата таблица или само записите, върху които трябва да стартирате инструкции за актуализиране или изтриване?
Решение:
SQL Server не предоставя архивиране на ниво таблица. Когато казваме, че искаме да направим резервно копие на таблицата, ние говорим за създаване на копие на съществуваща таблица със записи.Да кажем, че имаме dbo.Customer Table с няколко записа и искаме да създадем резервна таблица dbo.Customber_Bkp_TodayDate, можем да използваме скрипта по-долу
Първо създайте таблица dbo.Customer с примерни записи
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)
Сега нека създадем dbo.Customber_Bkp_TodayDate таблица за архивиране с всички записи, които присъстват в dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer
За да създадете нова таблица със записи, трябва да използвате Into NewTable от OldTable, както е показано по-горе.
Ако се интересуваме само от копиране на записи, където FName='Aamir' нашата заявка ще бъде като по-долу.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
Изпълнете горните скриптове и проверете таблиците дали са създадени с необходимите записи.
Как да архивирате записи в нова таблица от съществуваща таблица на SQL Server в SQL Server |
Скриптове, използвани във видео демонстрацията:
--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
Видео демонстрация:Как бързо да създадете нова таблица от съществуваща таблица с данни в SQL Server