sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan sikkerhedskopieres eller oprettes en ny tabel fra eksisterende SQL Server-tabel i SQL Server - SQL Server / TSQL Tutorial Del 105

Scenarie:

Du arbejder som SQL Server-udvikler, du skal levere nogle opdateringer eller slette scripts for at opdatere eller slette data fra en tabel. Du vil tage backup af disse poster, eller hvis tabellen er lille, vil du måske tage backup af hele tabellen, før du køre opdatering eller slet sætninger.

Hvordan vil du sikkerhedskopiere hele tabellen eller kun de poster, som du skal køre opdatering eller slette sætninger på?

Løsning:

SQL Server leverer ikke backup på tabelniveau. Når vi siger, at vi vil tage backup af tabellen, taler vi om at lave en kopi af eksisterende tabel med poster.
Lad os sige, om vi har dbo.Customer Table med få poster, og vi vil oprette backup-tabel dbo.Customber_Bkp_TodayDate, vi kan bruge nedenstående script
Opret først dbo.Customer-tabel med eksempelposter
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)
 
 
 Lad os nu oprette dbo.Customber_Bkp_TodayDate backup tabel med alle de poster, der er til stede i dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


For at oprette en ny tabel med poster, skal du bruge Into NewTable fra OldTable som vist ovenfor.
Hvis vi kun er interesseret i at kopiere poster, hvor FName='Aamir' vil vores forespørgsel være som nedenfor.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Kør ovenstående scripts, og tjek tabellerne, hvis de er oprettet med nødvendige poster.
Sådan sikkerhedskopieres poster til ny tabel fra eksisterende SQL Server-tabel i SQL Server


Scripts brugt i videodemoen:
--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 :Sådan opretter du en ny tabel fra eksisterende tabel med data i SQL Server hurtigt


  1. Hvordan man behandler MAX() af en tom tabel som 0 i stedet for NULL

  2. Forskellige måder at overvåge SQL Server AlwaysOn Availability Groups

  3. Sådan returneres dublerede nøgler fra et JSON-dokument i SQL Server

  4. Sådan læser du versionsnummer fra en databasefil i Android, som er placeret i aktiv mappe