Как обновить базу данных обучения данными из производственной базы данных?
-
09-06-2019 - |
Вопрос
У меня есть особая система в нашей сети, где нам нужно поддерживать обучающую установку.Система использует SQL Server 2000 в качестве ядра базы данных, и мне нужно настроить систему для регулярного обновления данных в обучающей базе данных данными из производственной базы данных.
Я хочу использовать SSIS, поскольку у нас есть серверы SQL 2005, с которых я могу запустить этот процесс.У меня есть некоторый опыт работы с SQL, но не так уж много с SSIS.Я пытался сделать это с помощью «Задачи переноса базы данных», но безуспешно, так как всегда выдает ошибку.
Если мы проигнорируем использование элементов конфигурации и т. д. и притворимся, что все имена баз данных и т. д. жестко запрограммированы, у меня будет следующее:Одна «Задача передачи базы данных» SSIS со следующими свойствами:
- Перезаписать назначение:Истинный
- Действие:Копировать
- Метод:База данныхОнлайн
Я получаю следующую ошибку:
Ошибка:Метод Execute задачи вернул код ошибки 0x80131500 (ОШИБКА:errorCode=-1073548784description=Выполнение запроса «EXEC dbo.sp_addrole @rolename = N'XXXXX'» завершилось неудачей со следующей ошибкой:«Роль «XXXXX» уже существует в текущей базе данных».Возможные причины неисправности:Проблемы с запросом, свойство «ResultSet» задано неправильно, параметры заданы неправильно или соединение установлено неправильно.helpFile= helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}).Метод Execute должен завершиться успешно и указать результат с помощью параметра out.
Я уверен, что здесь происходит что-то очевидное, но, конечно, если поставлена задача перезаписать предыдущее существование роли, не должно иметь значения?Кто-нибудь знает, что мне нужно сделать, чтобы это заработало?
Решение
По-видимому, это должно быть исправлено в SQLServer 2005 SP2. глянь сюда.Похоже, вам также необходимо обновить клиентский компьютер, если вы запускаете пакет SSIS из Visual Studio.