Max đã đưa ra một câu trả lời đàng hoàng mà tôi sẽ nêu lên sau khi tôi gõ xong cái nhìn thay thế này lên.
Tôi không phải là người thích khôi phục cơ sở dữ liệu hệ thống khi thực hiện di chuyển nâng cấp và tôi thích thực hiện di chuyển hơn là nâng cấp tại chỗ như tôi đã thảo luận trong câu trả lời dài này cho một câu hỏi khác.
Về cơ bản, tôi thích bắt đầu "mới" khi tôi di chuyển. Tôi thấy rằng chơi với việc di chuyển và nâng cấp cơ sở dữ liệu hệ thống thông qua khôi phục để đôi khi gây ra sự thất vọng với các khôi phục và nó có thể mang theo những tội lỗi tiềm ẩn.
Bạn cũng đã hỏi về chỉ mục, thủ tục lưu trữ, lượt xem. Tất cả các mục ở cấp cơ sở dữ liệu phải nằm trong cơ sở dữ liệu người dùng. Vì vậy, khi bạn khôi phục cơ sở dữ liệu X sang máy chủ mới, tất cả các đối tượng cơ sở dữ liệu (Bảng, Người dùng, Chế độ xem, Procs, Hàm, v.v.) cũng sẽ ở đó.
Những gì tồn tại trong cơ sở dữ liệu hệ thống là công việc, đăng nhập, cảnh báo, máy chủ được liên kết, khóa mã hóa, v.v.
Tôi muốn xem lại những thứ đó và di chuyển qua những gì tôi cần bằng cách sử dụng các tập lệnh khác nhau - gần đây đó là tập lệnh DBATools.Io powershell. Tôi thích sử dụng tập lệnh của họ để sao chép thông tin đăng nhập sql đặc biệt, bởi vì nó xử lý người dùng được xác thực SQL giữ mật khẩu và số nhận dạng bảo mật của họ giống nhau để người dùng cơ sở dữ liệu từ những lần đăng nhập đó sẽ hoạt động. Họ cũng có toàn bộ lệnh di chuyển SQL Server chạy các lệnh phụ của họ để sao chép qua các mục mà tôi thường sao chép.
Tôi không tin Max sai với câu trả lời đó vì thế upvote. Tôi đã có nhiều thành công hơn và may mắn hơn và cảm thấy thoải mái hơn khi chuyển sang mới thay vì cố gắng khôi phục cơ sở dữ liệu hệ thống giữa các phiên bản. Tôi thực sự nói rằng tôi thực sự không thể nhớ lần cuối cùng tôi thực hiện nâng cấp phiên bản và không làm theo cách này thay vì khôi phục cơ sở dữ liệu hệ thống.