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

Sử dụng SMO để sao chép cơ sở dữ liệu và dữ liệu

Vâng, sau khi liên hệ với bộ phận Hỗ trợ của Microsft, tôi đã thấy nó hoạt động bình thường, nhưng nó chậm và ít nhiều vô dụng. Thực hiện sao lưu và sau đó khôi phục nhanh hơn nhiều và tôi sẽ sử dụng nó miễn là bản sao mới phải nằm trên cùng một máy chủ với bản gốc.

Mã làm việc như sau:

ServerConnection conn = new ServerConnection("rune\\sql2008");
Server server = new Server(conn);

Database newdb = new Database(server, "new database");
newdb.Create();

Transfer transfer = new Transfer(server.Databases["source database"]);
transfer.CopyAllObjects = true;
transfer.CopyAllUsers = true;
transfer.Options.WithDependencies = true;
transfer.DestinationDatabase = newdb.Name;
transfer.DestinationServer = server.Name;
transfer.DestinationLoginSecure = true;
transfer.CopySchema = true;
transfer.CopyData = true;
transfer.Options.ContinueScriptingOnError = true;
transfer.TransferData();

Thủ thuật là đặt thuộc tính DestinationDatabase. Điều này phải được đặt ngay cả khi đích giống với nguồn. Ngoài ra, tôi phải kết nối với máy chủ như một phiên bản được đặt tên thay vì sử dụng các tùy chọn kết nối khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bế tắc SQL với các thao tác chọn / cập nhật trên bảng

  2. Kiểu dữ liệu 'MONEY' của SQL Server là dấu phẩy động thập phân hay dấu phẩy động nhị phân?

  3. Tham gia SQL với phạm vi ngày?

  4. KIỂM TRA CONSTRAINT trên nhiều cột

  5. TSQL - Có thể xác định thứ tự sắp xếp không?