У меня есть база данных из SQL Server 2005, которую я программно присоединяю к экземпляру SQL Server 2008 R2, а затем перестраиваю репликацию в некоторых таблицах (через некоторые предварительно запеченные сценарии, которые работали в течение небольшого времени) с другим сервером, на котором все еще работает SQL Server 2005.
Достаточно сказать, что это исключительно запутанное требование бизнеса.
Интересно, что при задании агента SQL Server произошла ошибка репликации с ошибкой «Неверное имя столбца« идентификатор источника »». Из того, что я могу понять из этой ссылки: http://www.experts -exchange.com / Microsoft / Development / MS-SQL-Server / Q_24145417.html - в старой базе данных должны быть обновлены различные кусочки и фрагменты, чтобы работать правильно с репликацией SQL Server 2008 R2. Этот процесс обновления так же прост, как и запуск хранимой процедуры sp_vupgrade_replication: http://technet.microsoft.com/en-us/library/ms188741.aspx
Вопрос 1: Почему ЛЮБАЯ информация о репликации запекается в базу данных, которую я присоединяю ?! Насколько я понимаю, база данных распространения содержала всю информацию о репликации. Я удалил и повторно прикрепил необновленную копию базы данных, чтобы убедиться, что она все еще не работает, чтобы убедиться, что я не схожу с ума.
Вопрос 2. Я знаю, что выполняются некоторые процедуры для обновления базы данных до определенного уровня совместимости при подключении БД к более новой версии SQL Server. Почему эта хранимая процедура не запускается?
Вопрос 3: Что именно меняет эта хранимая процедура? Могу ли я узнать что-либо еще, кроме того, что мне предлагает статья MSDN? Я не пробовал, но я уверен, что SQL Profiler просто скажет мне, что он выполняет sp_vupgrade_replication, и не даст мне никакой информации о выполняемых им запросах.