Макс дал достойный ответ, который я опрошу, когда закончу печатать этот альтернативный вид.
Я не являюсь поклонником восстановления системных баз данных при выполнении миграции с обновлением, и я предпочитаю выполнять миграцию вместо обновления на месте, как я обсуждал в этом длинном ответе на другой вопрос.
В основном мне нравится начинать «заново», когда я делаю миграцию. Я обнаружил, что игра с миграциями и обновлениями системной базы данных через восстановление иногда вызывает разочарование при восстановлении и может нести потенциальные грехи.
Вы также спросили об индексах, хранимых процедурах, представлениях. Эти элементы на уровне базы данных должны находиться внутри пользовательской базы данных. Поэтому, когда вы восстанавливаете базу данных X на новый сервер, все объекты базы данных (таблицы, пользователи, представления, процедуры, функции и т. Д.) Также будут там.
В системных базах данных имеются задания, имена входа, оповещения, связанные серверы, ключи шифрования и т. Д. Элементы уровня экземпляра.
Мне нравится просматривать их и переходить на то, что мне нужно, используя различные сценарии - в последнее время это сценарии PowerShell DBATools.Io . Мне особенно нравится использовать их скрипт для копирования логинов sql , потому что он обрабатывает аутентифицированных пользователей SQL, сохраняя их пароли и идентификаторы безопасности одинаковыми, так что пользователи базы данных из этих логинов будут работать. У них также есть целая команда миграции на SQL Server, которая выполняет свои подкоманды для копирования элементов, которые я обычно копирую.
Я не верю, что Макс не прав с этим ответом, следовательно, с ответом. Я просто добился большего успеха и больше удачи и чувствую себя более комфортно, переходя на новое, вместо того, чтобы пытаться восстановить системные базы данных между версиями. Я бы сказал, что я, честно говоря, не могу вспомнить, когда в последний раз я выполнял миграцию обновления версии и не делал этого таким образом вместо восстановления системных баз данных.