2009-04-29 6 views
2

Ich habe gerade einen Bericht im Berichts-Manager mithilfe einer gespeicherten Prozedur erstellt, die eine temporäre Tabelle verwendet.Problem mit temporärer Tabelle in Reporting Services 2000

Ich erhalte die Fehler

I „konnte nicht eine Liste von Feldern für die Abfrage. Ungültige Objektnamen‚#xxxx‘erzeugen“ lesen dies, weil, wenn Report Manager zu PrepareQuery versucht, ihn in Schwierigkeiten läuft, weil die temporäre Tabelle existiert noch nicht, ist das korrekt? Wenn ja, haben Sie Workarounds?

Antwort

3

Ich lief in diese einmal ... genau das gleiche, eigentlich. Ich reparierte es, indem ich diese Linie in mein SP fallen ließ, bevor ich irgendwelche Temp-Tabellen erstellte:

Das sollte den Trick dafür tun.

0

Der einzige Weg ist ein offensichtlicher, machen Sie Ihre temporäre Tabelle zu einem permanenten und führen Sie die Verwaltung selbst (Löschen von Zeilen nach der Verwendung usw.). Dies könnte sowohl schneller als auch indexierbar sein und Sie können Schlüssel hinzufügen, um die Integrität zu gewährleisten. Es kann auch als Cache für lange laufende Abfragen fungieren.

Wenn Sie sicher sind, dass nur ein Benutzer den SP aufruft, können Sie die Daten aus der Tabelle mit truncate statt delete ausgeben.

Nicht viel Hilfe, aber ich habe nie einen anderen Weg gefunden.

0

Ich weiß nicht viel über Reporting Services, aber das klingt genau für mich.

Es klingt für mich wie Sie möglicherweise nicht in der Lage, eine temporäre Tabelle zu verwenden, um die Daten zu speichern. Möglicherweise müssen Sie stattdessen eine permanente Tabelle verwenden.

Ich würde mich fragen, warum ich sowieso eine separate Tabelle verwendete. Sind die Daten in anderen Tabellen bereits vorhanden? Kann ich es stattdessen von dort bekommen? Manchmal haben Sie keine Wahl bei der Verwendung einer separaten Tabelle, nur sicher.

0

Ich weiß nicht, was genau das Problem verursacht, aber Sie könnten versuchen, eine Variablentabelle zu verwenden.

declare @table table (Field int)