sql >> Databáze >  >> RDS >> Sqlserver

Jak zálohovat nebo vytvořit novou tabulku ze Stávající tabulky SQL Serveru na SQL Serveru - SQL Server / Výukový program TSQL, část 105

Scénář:

Pracujete jako vývojář SQL Serveru, musíte poskytnout nějaké aktualizační nebo odstraňovací skripty, abyste aktualizovali nebo odstranili data z tabulky. Chcete provést zálohu těchto záznamů, nebo pokud je tabulka malá, možná budete chtít zálohovat celou tabulku. spustit příkazy update nebo delete.

Jak byste zálohovali celou tabulku nebo pouze záznamy, u kterých potřebujete příkazy update nebo delete spustit?

Řešení:

SQL Server neposkytuje zálohování na úrovni tabulky. Když říkáme, že chceme provést zálohu tabulky, mluvíme o vytvoření kopie existující tabulky se záznamy.
Řekněme, že máme tabulku dbo.Customer s několika záznamy a chceme vytvořit záložní tabulku dbo.Customber_Bkp_TodayDate, můžeme použít níže uvedený skript
Nejprve vytvořte tabulku dbo.Customer s ukázkovými záznamy
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)
 
 
 Nyní vytvoříme záložní tabulku dbo.Customber_Bkp_TodayDate se všemi záznamy, které jsou v dbo.Customer.
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Chcete-li vytvořit novou tabulku se záznamy, musíte použít Into NewTable from OldTable, jak je uvedeno výše.
Pokud nás zajímá pouze kopírování záznamů, kde FName='Aamir' bude náš dotaz vypadat takto níže.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Spusťte výše uvedené skripty a zkontrolujte, zda jsou tabulky vytvořeny s požadovanými záznamy.
Jak zálohovat záznamy do nové tabulky ze stávající tabulky serveru SQL na serveru SQL


Skripty použité v ukázce videa:
--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 ukázka:Jak rychle vytvořit novou tabulku z existující tabulky s daty na SQL Server


  1. MariaDB JSON_ARRAY_INSERT() Vysvětleno

  2. OracleException (0x80004005) při připojování k databázi Oracle

  3. Rovná se(=) vs. LIKE pro datový typ data

  4. Složitosti NULL – 2. část