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

cách khôi phục bằng cách sử dụng lớp khôi phục của không gian tên Microsoft.SqlServer.Management.Smo

Vấn đề là ở đây

sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));

ở đây databaseName có nghĩa là, tên của cơ sở dữ liệu được chỉ định trong tệp sao lưu db. Nhưng bạn đang chỉ định tên db đích.

Thay đổi nó thành tên db ban đầu

đây là mã mẫu để đọc tên db từ tệp sao lưu

DataTable dtFileList = sqlRestore.ReadFileList(serverName);
string dbLogicalName = dtFileList.Rows[0][0].ToString();
string dbPhysicalName = dtFileList.Rows[0][1].ToString();
string logLogicalName = dtFileList.Rows[1][0].ToString();
string logPhysicalName = dtFileList.Rows[1][1].ToString


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận ngày từ một số tuần trong T-SQL

  2. Chọn các số có nhiều hơn 4 chữ số thập phân

  3. Hình ảnh trong cơ sở dữ liệu so với hệ thống tệp

  4. Thói quen xấu:Tránh NULL trong SQL Server

  5. Tạo chế độ xem với X và Y từ kiểu hình học