Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wykonać kopię zapasową lub utworzyć nową tabelę z istniejącej tabeli SQL Server w SQL Server - SQL Server / TSQL Tutorial, część 105

Scenariusz:

Pracujesz jako programista SQL Server, musisz dostarczyć kilka skryptów aktualizujących lub usuwających, aby zaktualizować lub usunąć dane z tabeli. Chcesz wykonać kopię zapasową tych rekordów lub jeśli tabela jest mała, możesz chcieć wykonać kopię zapasową całej tabeli przed wykonaniem uruchom instrukcje aktualizacji lub usunięcia.

Jak wykonać kopię zapasową całej tabeli lub tylko rekordów, na których chcesz uruchomić aktualizację lub usunąć instrukcje?

Rozwiązanie:

SQL Server nie zapewnia kopii zapasowej na poziomie tabeli. Kiedy mówimy, że chcemy wykonać kopię zapasową tabeli, mówimy o wykonaniu kopii istniejącej tabeli z rekordami.
Powiedzmy, że mamy dbo.Tablica klienta z kilkoma rekordami i chcemy utworzyć tabelę zapasową dbo.Customber_Bkp_TodayDate, możemy użyć poniższego skryptu
Najpierw utwórz tabelę dbo.Customer z przykładowymi rekordami
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)
 
 
 Teraz utwórzmy tabelę kopii zapasowych dbo.Customber_Bkp_TodayDate ze wszystkimi rekordami, które są obecne w dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Aby utworzyć nową tabelę z rekordami, musisz użyć funkcji Into NewTable ze OldTable, jak pokazano powyżej.
Jeśli interesuje nas tylko kopiowanie rekordów, w których FName='Aamir' nasze zapytanie będzie wyglądać tak poniżej.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Uruchom powyższe skrypty i sprawdź, czy tabele zostały utworzone z wymaganymi rekordami.
Jak wykonać kopię zapasową rekordów do nowej tabeli z istniejącej tabeli SQL Server w SQL Server


Skrypty użyte w demonstracji wideo:
--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
 


Prezentacja wideo:jak szybko utworzyć nową tabelę z istniejącej tabeli z danymi w 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. Pojawia się dziwny błąd, zapytanie SQL Server przy użyciu klauzuli `WITH`

  2. Korzyści z używania notacji porządkowej SQL?

  3. Jak zmienić kolumnę z wartości Null na Not Null w SQL Server

  4. CAST() vs TRY_CAST() w SQL Server:jaka jest różnica?

  5. Jak znaleźć sortowanie bazy danych obsługiwane przez instancję SQL Server?