Có ai biết làm thế nào để sao lưu cơ sở dữ liệu SQL Server 2005/2008 với C# và nhận được tiến trình sao lưu cơ sở dữ liệu?Sao lưu cơ sở dữ liệu SQL Server với tiến trình
Trả lời
Dưới đây là một giải pháp ADO.NET tinh khiết, nếu bạn đang gặp khó khăn trong cài đặt SMO/SQLDMO trên máy mục tiêu (đó là một cơn đau ở phía sau, tốt nhất nên tránh nếu bạn có thể).
public void BackupDatabase(SqlConnection con, string databaseName, string backupName, string backupDescription, string backupFilename) {
con.FireInfoMessageEventOnUserErrors = true;
con.InfoMessage += OnInfoMessage;
con.Open();
using(var cmd = new SqlCommand(string.Format(
"backup database {0} to disk = {1} with description = {2}, name = {3}, stats = 1",
QuoteIdentifier(databaseName),
QuoteString(backupFilename),
QuoteString(backupDescription),
QuoteString(backupName)), con)) {
cmd.ExecuteNonQuery();
}
con.Close();
con.InfoMessage -= OnInfoMessage;
con.FireInfoMessageEventOnUserErrors = false;
}
private void OnInfoMessage(object sender, SqlInfoMessageEventArgs e) {
foreach(SqlError info in e.Errors) {
if(info.Class > 10) {
// TODO: treat this as a genuine error
} else {
// TODO: treat this as a progress message
}
}
}
private string QuoteIdentifier(string name) {
return "[" + name.Replace("]", "]]") + "]";
}
private string QuoteString(string text) {
return "'" + text.Replace("'", "''") + "'";
}
Mệnh stats = 1
nói với SQL Server để phát ra mức độ nghiêm trọng 0 thư cùng khoảng thời gian tỷ lệ phần trăm nhất định (trong trường hợp này 1%). Sự kiện FireInfoMessageEventOnUserErrors
và sự kiện InfoMessage
đảm bảo rằng mã C# chụp các thông báo này trong khi thực thi thay vì chỉ ở cuối.
Tôi đã tìm kiếm một cái gì đó như thế này trong một thời gian khá ... là phiên bản Restore này khác nhiều? Phần nào của thông báo thông báo cho biết tỷ lệ phần trăm tiến bộ thực tế là gì? – Patrick
Lệnh khôi phục rất giống nhau, ví dụ: '" khôi phục cơ sở dữ liệu {0} từ đĩa = {1} với thay thế, số liệu thống kê = 1 "'. Đối với giá trị phần trăm, cá nhân tôi chỉ sử dụng một regex trên tin nhắn, ví dụ: 'Regex.Match (e.Message," (\ d {1,3}) phần trăm ")'. –
SMO có sự kiện phần trăm đầy đủ.
- 1. Thả cơ sở dữ liệu SQL Server
- 2. Cơ sở dữ liệu SQL tự động sao lưu
- 3. Quá trình sao lưu/khôi phục cơ sở dữ liệu
- 4. Sao lưu cơ sở dữ liệu SQL Server một phần (không bao gồm một số bảng)
- 5. Cách sao lưu Cơ sở dữ liệu Sql Lập trình trong C#
- 6. Trình hướng dẫn xuất bản cơ sở dữ liệu SQL với SQL Server 2008
- 7. sao lưu cơ sở dữ liệu mysql với mysqldump
- 8. Cập nhật bảng cơ sở dữ liệu từ một bảng cơ sở dữ liệu SQL Server sang bảng cơ sở dữ liệu SQL Server khác?
- 9. Sao lưu cơ sở dữ liệu MySQL
- 10. Bảo vệ cơ sở dữ liệu SQL Server 2008R2
- 11. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 12. enums trong cơ sở dữ liệu SQL Server
- 13. Chiến lược triển khai cơ sở dữ liệu (SQL Server)
- 14. Sao chép các bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong SQL Server
- 15. SQL Server Sao chép các bảng từ một cơ sở dữ liệu sang một cơ sở dữ liệu khác
- 16. Vai trò cơ sở dữ liệu SQL Server
- 17. Cách chọn đối chiếu cơ sở dữ liệu SQL Server
- 18. Bí danh cơ sở dữ liệu chéo của SQL Server
- 19. Khôi phục cơ sở dữ liệu SQL Server 2008 sang SQL Server 2000
- 20. Khôi phục/sao lưu cơ sở dữ liệu Sql Server từ máy khách từ xa theo lập trình
- 21. Chọn kích thước cơ sở dữ liệu SQL Server
- 22. Cách lưu tiến trình trò chơi trong cơ sở dữ liệu MySQL
- 23. Mang cơ sở dữ liệu SQL Server trực tuyến
- 24. Cách tốt nhất để đồng bộ hóa cơ sở dữ liệu SQL Server từ xa với cơ sở dữ liệu SQL Server Compact cục bộ?
- 25. Tránh con trỏ cơ sở dữ liệu trong SQL Server
- 26. Nhận cơ sở dữ liệu SQL Server Cross Phụ thuộc
- 27. Xóa (hợp nhất) tệp dữ liệu thứ cấp của cơ sở dữ liệu SQL Server
- 28. Toàn bộ cơ sở dữ liệu Script SQL-Server
- 29. Thả Người dùng từ Cơ sở dữ liệu SQL Server?
- 30. MIME loại tệp cơ sở dữ liệu SQL Server BACKUP
phiên bản máy chủ sql nào? – Gratzy
MSSQL 2005 và 2008 – RPS