Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sao lưu hoặc tạo bảng mới từ Bảng SQL Server Hiện có trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 105

Tình huống:

Bạn đang làm việc với tư cách là nhà phát triển SQL Server, bạn cần cung cấp một số cập nhật hoặc xóa tập lệnh để cập nhật hoặc xóa dữ liệu khỏi bảng. Bạn muốn sao lưu các bản ghi đó hoặc nếu bảng nhỏ, bạn có thể muốn sao lưu toàn bộ bảng trước khi chạy cập nhật hoặc xóa câu lệnh.

Bạn sẽ sao lưu toàn bộ bảng hoặc chỉ các bản ghi mà bạn cần để chạy câu lệnh cập nhật hoặc xóa?

Giải pháp:

SQL Server không cung cấp sao lưu mức Bảng. Khi chúng ta nói rằng chúng ta muốn sao lưu bảng, chúng ta đang nói về việc tạo một bản sao của bảng hiện có với các bản ghi.
Giả sử nếu chúng ta có dbo. Bảng khách hàng có ít bản ghi và chúng ta muốn tạo bảng sao lưu. dbo.Customber_Bkp_TodayDate, chúng ta có thể sử dụng tập lệnh bên dưới
Đầu tiên tạo bảng dbo.Customer với các bản ghi mẫu
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)
 
 
 Bây giờ, hãy tạo bảng sao lưu dbo.Customber_Bkp_TodayDate với tất cả các bản ghi có trong dbo.Customer. 
Select * into dbo.Customber_Bkp_20160507 from dbo.Customer


Để tạo bảng mới với các bản ghi, bạn phải sử dụng Into NewTable từ OldTable như được hiển thị ở trên.
Nếu chúng ta chỉ quan tâm đến việc sao chép các bản ghi trong đó FName ='Aamir' thì truy vấn của chúng ta sẽ như thế nào bên dưới.
Select * into dbo.Customber_Bkp_20160507_OnlyAamir from dbo.Customer where FName='Aamir'
 
Chạy các tập lệnh phía trên và kiểm tra các bảng nếu được tạo bằng các bản ghi bắt buộc.
Cách sao lưu các bản ghi vào bảng mới từ Bảng SQL Server hiện có trong SQL Server
Tập lệnh

được sử dụng trong video demo:
--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:Cách tạo bảng mới từ bảng hiện có với dữ liệu trong SQL Server một cách nhanh chóng


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có Rủi ro Bảo mật Liên quan đến Giám sát Đám mây Spotlight không?

  2. Cách tắt tính năng thu thập dữ liệu thay đổi (CDC) trên cơ sở dữ liệu trong SQL Server - Hướng dẫn sử dụng SQL Server

  3. Làm thế nào để tìm các hàng liên tiếp dựa trên giá trị của một cột?

  4. Chẩn đoán bế tắc trong SQL Server 2005

  5. Cách hoạt động của hàm QUOTENAME () trong SQL Server (T-SQL)