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 |
đượ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