Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So sichern oder erstellen Sie eine neue Tabelle aus einer vorhandenen SQL Server-Tabelle in SQL Server - SQL Server / TSQL-Tutorial Teil 105

Szenario:

Sie arbeiten als SQL Server-Entwickler und müssen einige Aktualisierungs- oder Löschskripts bereitstellen, um Daten aus einer Tabelle zu aktualisieren oder zu löschen. Sie möchten eine Sicherungskopie dieser Datensätze erstellen, oder wenn die Tabelle klein ist, möchten Sie möglicherweise die gesamte Tabelle vor Ihnen sichern Ausführen von Aktualisierungs- oder Löschanweisungen.

Wie würden Sie die gesamte Tabelle sichern oder nur die Datensätze, für die Sie Aktualisierungs- oder Löschanweisungen ausführen müssen?

Lösung:

SQL Server bietet keine Sicherung auf Tabellenebene. Wenn wir sagen, dass wir eine Sicherungskopie der Tabelle erstellen möchten, sprechen wir davon, eine Kopie einer vorhandenen Tabelle mit Datensätzen zu erstellen.
Nehmen wir an, wir haben eine dbo.Customer-Tabelle mit wenigen Datensätzen und möchten eine Sicherungstabelle erstellen dbo.Customber_Bkp_TodayDate, wir können das folgende Skript verwenden
Erstellen Sie zuerst die dbo.Customer-Tabelle mit Beispieldatensätzen
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)
 
 
 Lassen Sie uns nun die Sicherungstabelle dbo.Customber_Bkp_TodayDate mit allen Datensätzen erstellen, die in dbo.Customer vorhanden sind.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Um eine neue Tabelle mit Datensätzen zu erstellen, müssen Sie Into NewTable from OldTable verwenden, wie oben gezeigt.
Wenn wir nur daran interessiert sind, Datensätze mit FName='Aamir' zu kopieren, wird unsere Abfrage so aussehen unten.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Führen Sie obige Skripte aus und prüfen Sie, ob die Tabellen mit den erforderlichen Datensätzen erstellt wurden.
So sichern Sie Datensätze in einer neuen Tabelle aus einer vorhandenen SQL Server-Tabelle in SQL Server


In der Videodemo verwendete Skripte:
--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-Demo:So erstellen Sie schnell eine neue Tabelle aus einer vorhandenen Tabelle mit Daten in SQL Server