Hallo zusammen, ich arbeite schon eine Weile an diesem Problem und die üblichen Google-Suchen helfen nicht :(
Ich habe eine Produktionsdatenbank in SQL 2000. Ich möchte sie über eine Schulungsdatenbank kopieren, um sie zu aktualisieren. Ich möchte, dass dies einmal pro Woche geschieht, um die Schulungsdatenbank auf dem neuesten Stand zu halten.
Ich habe einen DTS-Auftrag für diese Aufgabe erstellt. Innerhalb dieses DTS-Auftrags habe ich eine einzelne Aufgabe "SQL-Server-Objekte kopieren". Diese Aufgabe ist wie folgt eingerichtet:
- Alle kopierten Objekte erstellen
- Zielobjekte zuerst ablegen
- Daten kopieren
- Ersetzen Sie vorhandene Daten
- Kopieren von Indizes, Triggern, Primär- und Fremdschlüsseln
- Kopieren Sie alle Benutzertabellen, Ansichten, Funktionen und gespeicherten Verfahren.
Wenn ich dieses DTS-Paket ausführe (natürlich in der Vorproduktion zu Testzwecken), wird es zu 99 % fertig und gibt den folgenden Fehler aus:
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
Meine Recherchen im Netz brachten nicht viel Hilfe. Es gibt Berichte über diese Fehler, aber keiner scheint auf meine Situation zuzutreffen. Ein Vorschlag, den ich gefunden habe, war, dass die Tabelle sysdepends beschädigt wurde, so dass der DTS-Job seine Skripte in der falschen Reihenfolge ausführt. Ich habe jedoch das folgende Skript ausgeführt, um die Tabelle zu korrigieren, und es tritt immer noch derselbe Fehler auf:
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
Ich habe auch gesehen, dass unterschiedliche Objekteigentümer diesen Fehler verursachen können. Ich habe jedoch bestätigt, dass die Objekte in diesem Fall alle dem Benutzer dbo gehören.
Irgendwelche Vorschläge?