0

Я пытаюсь скопировать базу данных с сервера сервера SQL Server 2016 на другой сервер в SQL Server Server 2005. (Server1.database1) до (server2.database1) Я попробовал отсоединить и подключить метод, и он не работает. Я также попытался скопировать базу данных, и она тоже не работала! Мне нужны все столы и виды и пр! Наконец-то я мог бы скопировать все таблицы и pr, но проблема в том, что я не могу иметь представления в виде представления, и они просто сохраняются в виде таблицы. Чтобы решить эту проблему, я подумал, что если я скопирую запрос из server1.views и выполнил этот запрос в server2.database1.views, у меня будет представление, поскольку у меня есть все объекты, скопированные в server2.database1. но я получаю некоторые ошибки: была функция «формат», которую они использовали в SQL Server 2016, который не идентифицирован в 2005 году. Я изменил все эти функции «формата» и выполнил запрос, и теперь я оставил с этими ошибками: Msg 15135, уровень 16, состояние 8, процедура sp_addextendedproperty, строка 37 [Стартовая строка 35] Объект недействителен. Расширенные свойства не разрешены на 'dbo.v_RASAM', или объект не существует.ETL от SQL Server 2016 до SQL Server Management Studio 2005

Так посмотреть, что я хочу, чтобы скопировать вызовы: dbo.v_RASAM И я уверен (потому что я проверил процедуру имя sp_addextendedproperty) sp_addextendedproperty существует! Итак, вопрос, который у меня есть, возможен, что процедура следует за некоторыми утверждениями, которые должны быть изменены, поскольку «просмотр» имел функции, недоступные в SQL Server 2005 для управления сервером (это может показаться глупым, но я думаю о любой возможной причине, которая может вызвать этот вопрос) Как я могу получить эти представления на server2.database1 любым другим способом, который я не пробовал?

любая помощь или мы будем очень благодарны! Большое вам спасибо за ваше время!

+0

Можете ли вы получить доступ к двум экземплярам в одной сети? Если это так, вы можете подумать об использовании привязанного аверса для перемещения данных. –

+1

есть шанс, что вы сможете восстановить резервное копирование с сервера 2016 на сервер 2016, а затем изменение совместимости bility с 2016 года по 2005 год на восстановленную резервную копию, а затем создать резервную копию этой версии, которая позволит вам восстановить его на экземпляр 2005 года. По общему признанию, они не пробовали, но могли стоить вихря. – CodeMonkey1313

ответ

1

Вы можете попробовать использовать функцию генерации скриптов для сценария всех объектов и данных (если требуется) в файл сценария и выполнить их на вашем целевом экземпляре.

В SSMS 2016, щелкните правой кнопкой мыши DB> Задачи> Создать сценарии ..

Есть несколько опций под кнопкой «Дополнительно» в мастере, который вы, вероятно, хотите настроить.

+0

Это будет работа, если мой целевой сервер был в 2016 году, а мой источник - 2005. Но по какой-то причине мне нужно переводить представления с 2016 по 2005 год, и я получаю ошибки в скриптах, потому что, например, функция «format» не идентифицирована в sql 2005, и у меня есть это в наших представлениях в 2016 году. сервер –

+1

В этом случае у вас нет опции, кроме как перезаписать любой объектный код, который будет обратно совместим. – innomatics

+0

Правильно, большое спасибо @innomatics! –

0

В моем случае я нахожу решение. Изменяя все «форматные» функции в сценарии вида, который был Format (Convert (int, databse.table.column) »,« #### - ## - ## ») с заменой (конвертировать (varchar (20), Cast (database.table.column как дата-время).

Это действительно редкий случай, когда у кого-то есть эта проблема, но единственный способ сделать это - перестроить запросы с нуля и попробуйте установить совместимость с 2012 или 2016 по 2005 год!

 Смежные вопросы

  • Нет связанных вопросов^_^