大家好,我一直在研究这个问题一段时间,通常的谷歌搜索没有帮助:(
我在 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 用户所有。
有什么建议么?