こんにちは、私はしばらくこの問題に取り組んできましたが、通常の Google 検索では役に立ちません :(
SQL 2000 の実稼働データベースがあります。それをトレーニング データベースの上にコピーして更新したいと考えています。トレーニング データベースを最新の状態に保つために、これを 1 週間に 1 回行うようにスケジュールしたいと考えています。
これを行うために作成された DTS ジョブがあります。その DTS ジョブ内に、"SQL Server オブジェクトのコピー" タスクが 1 つあります。そのタスクは次のように設定されています。
- コピーされたすべてのオブジェクトを作成する
- 最初に宛先オブジェクトをドロップします
- データのコピー
- 既存のデータを置き換える
- インデックス、トリガー、主キー、外部キーをコピーする
- すべてのユーザー テーブル、ビュー、関数、およびストアド プロシージャをコピーします。
この 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
ネットで検索してもあまり役に立ちませんでした。これらのエラーがヒットしたという報告がありますが、私の状況に一致するものはないようです。私が見つけた 1 つの提案は、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 ユーザーによって所有されていることを確認しました。
助言がありますか?