2016-12-09 4 views
1

Ich habe zwei verschiedene Skripte, eines erstellt von mir und eines von meinem Kollegen, das die gleichen Snapshots verwendet.Löschen von SQL-Snapshots in SSIS

16,00 (oder 4 PM) Von mir codiert. Skript 1 - löscht Snapshots, wenn sie dort sind, erstellt neue Snapshots - führt Code aus.

04.00 (oder 4 AM) Coded by Collegue Skript 2 - löscht Snapshots, wenn sie dort sind, erstellt neue Snapshots - führt Code aus.

Diese beiden Skripte sind SSIS-Skripte, die nur für gespeicherte Prozeduren (die SSIS-Skripts führen nicht viel mehr als führt eine Reihe von gespeicherten Prozeduren in einer Kette).

Skript 2 funktioniert ohne Probleme. Skript 1 get 'Snapshot kann nicht gelöscht werden, Sie haben keinen Zugriff oder der Snapshot ist nicht in der Datenbank vorhanden

Wenn ich Skript 1 in SQL Studio ausführen funktioniert es perfekt, so dass ich nichts falsch geschrieben habe.

Beide Scripts laufen unter dem gleichen Benutzer sowohl in der SSIS-Engine als auch in der JOBS-Engine.

Ich weiß nicht einmal, wo ich anfangen sollte für Fehler suchen? Irgendwelche Vorschläge?

------------- Edit: Script ---------------- hinzugefügt

IF EXISTS(select NULL from sys.databases where name='Citybase_Snapshot') 
BEGIN 
    DROP DATABASE Citybase_Snapshot; 
END 

CREATE DATABASE CityBase_Snapshot ON 
(NAME = FastighetsBok_Data, FILENAME = 'S:\Snapshots\Citybase_Snapshot.ss') 
AS SNAPSHOT OF Citybase; 

------ ---------- Bearbeiten: Fehlermeldung hinzugefügt ----------------------

Soweit ich weiß, ist dies normal Fehlermeldung vom SQL Server.

+1

fügen Sie ein Häkchen an, um zu sehen, ob vor dem Löschen Snapshots vorhanden sind – TheGameiswar

+0

Ich schlage vor, dass Sie die Skripte posten. Eine Nachricht wie diese klingt _sehr_ spezifisch für den laufenden Code (d. H. Ich habe noch nie davon als native sql-Fehlermeldung gehört), so dass das Problem irgendwo im Code liegt –

+0

Ich überprüfe, ob die Snapshots da sind. Na sicher. : D Danke. –

Antwort

0

Die Antwort war einfacher als ich mir vorgestellt hatte.

Sie haben einen aktiven Benutzer für das SSIS-Skript festgelegt, das ausgeführt wird, wenn Sie einen Auftrag im SQL-Server für den SSIS-Auftrag erstellen. Dies ist jedoch nicht der einzige Ort, an dem Sie möglicherweise einen Sicherheitsbenutzer haben.

Sie müssen auch die tatsächlich im SSIS-Skript eingerichtete Verbindung überprüfen, um sicherzustellen, dass der Benutzer, mit dem Sie eine Verbindung zur Datenbank herstellen, den Snapshot löschen kann.

Einfach wie Kuchen (wenn Sie wissen, was los ist).