Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да архивирате или създадете нова таблица от съществуваща таблица на SQL Server в SQL Server - SQL Server / TSQL урок, част 105

Сценарий:

Вие работите като разработчик на 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирате „Опцията за конфигурация „Agent XPs“ не съществува“ в SQL Server (T-SQL)

  2. Какво е блокиране на SQL Server?

  3. Как да коригирате „Заявката COMMIT TRANSACTION няма съответна BEGIN TRANSACTION“ в SQL Server

  4. Изберете колони от набора от резултати на съхранената процедура

  5. SQL изберете всички, ако параметърът е нулев, иначе връща конкретен елемент