2016-05-26 8 views
1

Ich habe ein Stück Code, den ich in ein paar Temp-Tabellen, die ich in SSRS als Datensatz ausführen.Fehler beim Hinzufügen von Dataset, Oject Name bereits in der Datenbank

Ich habe Probleme, dies zum Funktionieren zu bringen, da es sagt, dass der Objektname bereits existiert? Im Managementstudio läuft das gut, in den Visual Studios fällt es jedoch hin.

Ich habe 2 andere Berichte, die identisch sind, die auf eine andere Adressen aussehen und diese funktionieren gut.

Ich kann jedes Bit Code separat in SSRS setzen und es funktioniert, aber es als eine temporäre Tabelle Format scheint nicht zu arbeiten, ich habe auch das als Proc müde.

There is already an object named '#Recordsimported30BL' in the database. 
+0

Verwendung von #Tabelle? Wenn Sie es verwenden, dann stellen Sie sicher, dass Sie es einmal nach der Ausführung ablegen - also am Ende der Speicherprozedur Drop-Tabelle # Recordsimported30BL – pedram

+0

Ich habe versucht, vorher und nachher zu fallen. –

Antwort

1

Warum sollten Sie zuerst die Daten in eine temporäre Tabelle einfügen? Wenn Sie Script haben eine select into #temp Tabelle, dann haben Sie eine andere Auswahl nach, die auf die Tabelle #temp zeigt. Fügen Sie am Ende Ihres Skripts einfach eine drop table #temp hinzu.

1

Sie können in Ihrem Code verwenden diese die Tabelle, um sicherzustellen, fallen gelassen wird:

IF OBJECT_ID('tempdb..#Recordsimported30BL') IS NOT NULL DROP TABLE #Recordsimported30BL; 

Aber bitte Ihren Code sorgfältig prüfen, um sicherzustellen, dass es in der Tabelle zu diesem Zeitpunkt keine wertvollen Daten ist.

Temporäre Tabellen werden am Ende der Sitzung automatisch gelöscht. Das könnte erklären, warum Ihr Code in SQL Management Studio einwandfrei funktioniert. Ihr Programm kann andererseits eine persistente Sitzung verwenden, um mehrere Berichte auszuführen. Das ist, wo Sie mit einer temporären Tabelle von dem vorherigen Lauf, der noch in dem Tempdb vorhanden ist, wenn Sie versuchen, es erneut zu erstellen, enden können.

... und @Aldrin ist richtig. Stellen Sie sicher, dass Sie DROP Ihre temporären Tabellen, wenn sie nicht mehr benötigt werden.

+0

Sieht so aus, als ob Sie auf diesem Tisch einen Deadlock haben. Etwas anderes benutzt es. Überprüfen Sie die Rekursion in Ihrem Code. –

+0

Um dieses Problem zu umgehen, könnte man versuchen, temporäre Tabellennamen dynamisch zu generieren. –

Verwandte Themen