Привет всем, я работал над этой проблемой некоторое время, и обычный поиск в Google не помогает: (
У меня есть рабочая база данных в SQL 2000. Я хочу скопировать ее поверх учебной базы данных, чтобы обновить ее. Я хочу, чтобы это происходило раз в неделю, чтобы поддерживать базу данных в актуальном состоянии.
У меня есть задание DTS, созданное для этого. В рамках этого задания DTS у меня есть одна задача «Копировать объекты SQL Server». Задача настроена на:
- Создать все скопированные объекты
- Сначала отбросить объекты назначения
- Копировать данные
- Заменить существующие данные
- Копирование индексов, триггеров, первичных и внешних ключей
- Копирование всех пользовательских таблиц, представлений, функций и хранимых процедур.
Когда я запускаю этот пакет DTS (в подготовке к тестированию, конечно), он завершается на 99% и выдает следующую ошибку:
Step Error Source: Microsoft SQL-DMO (ODBC SQLState: 42S02)
Step Error Description:[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'dbo.vwEstAssetStationAddress'.
Step Error code: 800400D0
Step Error Help File:SQLDMO80.hlp
Step Error Help Context ID:1131
Мои поиски в сети не помогли. Есть сообщения об этих ошибках, но ни одна из них не соответствует моим обстоятельствам. Я обнаружил, что таблица sysdepends была повреждена, из-за чего задание DTS запускало свои сценарии в неправильном порядке. Тем не менее, я запустил следующий скрипт для исправления этой таблицы, и он по-прежнему выдает ту же ошибку:
USE master
GO
ALTER DATABASE [DATABASE NAME]
SET SINGLE_USER
GO
USE [DATABASE NAME]
GO
DBCC CHECKTABLE('sysdepends',REPAIR_REBUILD )
GO
USE master
GO
ALTER DATABASE [DATABASE NAME]
SET MULTI_USER
GO
Я также видел, что наличие разных владельцев объектов может вызвать эту ошибку. Но я подтвердил, что в этом случае все объекты принадлежат пользователю dbo.
Есть предложения?