sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man säkerhetskopierar eller skapar en ny tabell från befintlig SQL Server-tabell i SQL Server - SQL Server / TSQL Tutorial Del 105

Scenario:

Du arbetar som SQL Server-utvecklare, du måste tillhandahålla några uppdateringar eller ta bort skript för att uppdatera eller radera data från en tabell. Du vill ta säkerhetskopian av dessa poster eller om tabellen är liten kanske du vill säkerhetskopiera hela tabellen innan du kör uppdatering eller ta bort satser.

Hur skulle du säkerhetskopiera hela tabellen eller bara de poster som du behöver köra uppdatering eller radera satser på?

Lösning:

SQL Server tillhandahåller inte backup på tabellnivå. När vi säger att vi vill ta backupen av tabellen pratar vi om att göra en kopia av befintlig tabell med poster.
Låt oss säga om vi har dbo.Customer Table med få poster och vi vill skapa backuptabell dbo.Customber_Bkp_TodayDate, vi kan använda nedanstående skript
Skapa först dbo.Customer-tabell med exempelposter
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)
 
 
 Låt oss nu skapa backuptabellen för dbo.Customber_Bkp_TodayDate med alla poster som finns i dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


För att skapa en ny tabell med poster måste du använda Into NewTable från OldTable som visas ovan.
Om vi ​​bara är intresserade av att kopiera poster där FName='Aamir' kommer vår fråga att se ut som nedan.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Kör ovanstående skript och kontrollera tabellerna om de har skapats med nödvändiga poster.
Hur man säkerhetskopierar poster till ny tabell från befintlig SQL Server-tabell i SQL Server


Skript som används i videodemon:
--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
 


Videodemo :Hur man snabbt skapar en ny tabell från befintlig tabell med data i SQL Server


  1. Vad betyder teckenuppsättning och sortering exakt?

  2. 5 enkla steg för att komma igång med MariaDB och Tableau

  3. Ta bort sql-rader där ID:n inte har en matchning från en annan tabell

  4. Var uppmärksam på uppskattningar