Temporäre Tabelle Fehlermeldung "affected by last query"

Mike90

Benutzer
Beiträge
7
Hallo zusammen,

ich möchte unter SQL Server 08 R2 eine temporäre Tabelle erstellen, die den Durchschnittlichen Bestand jeder Materialkategorie mit Bezeichnung enthält, um mit diesen Daten weiterrechnen zu können.

Code:
CREATE TABLE #TEMPDurchschnittsBestand (ID_KategorieReporting INT PRIMARY KEY)
SELECT    dbo.Materialstamm.KategorieReporting ,
                SUM(dbo.Bestandsdaten.Bestand * dbo.Preis.Staps) / 4 AS DurchschnittsBestand INTO #DurchschnittsBestand
FROM        dbo.Bestandsdaten INNER JOIN
                      dbo.Preis ON dbo.Bestandsdaten.Materialnummer = dbo.Preis.Materialnummer INNER JOIN
                      dbo.Materialstamm ON dbo.Bestandsdaten.Materialnummer = dbo.Materialstamm.Materialnummer
GROUP BY dbo.Materialstamm.KategorieReporting

Bei der Ausführung erscheint jedoch die Fehlermeldung "7 rows affected by last query". Die sieben Zeilen stehen dabei wahrscheinlich für die jeweiligen Kategorien.

Kann mir jemand sagen, wo der Fehler liegt?

Vielen Dank im Voraus :)

VG,
Mike
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.645
Ich habe das jetzt nicht ausprobiert aber löscht du die Tabelle bevor du sie neu erzeugst oder wird die "überschrieben"?

Verwende doch einfach eine View oder warum muss es eine Tabelle sein?
 

Mike90

Benutzer
Beiträge
7
Hallo Ukulele,

die Tabelle wird komplett neu erzeugt.

Mit Views hab ich es bereits probiert, allerdings bin ich dort in eine totale Sackgasse gelandet. Das Erzeugen von temporären Tabellen ist sozusagen nochmal ein Neuanfang, wo ich mich aber nicht auskenne.

Viele Grüße,
 

Tommi

Datenbank-Guru
Beiträge
286
Hallo Mike,

wenn du eine Temporäre Tabelle mit CREATE erstellst, musst du auch mit dem Befehl INSERT weiterarbeiten.
Eine temporäre Tabelle unterscheidet sich von der Handhabung nicht von einer statisch angelegten Tabelle.

Wenn du das CREATE nicht verwendest, kannst du eine temporäre Tabelle direkt erstellen, wenn du vor der FROM-Klausel das INTO #DurchschnittsBestand benutzt.
Ein CREATE der temporären Tabelle ist dann nicht notwendig.

Bei dem SELECT wird dann auch kein Ergebnis in Tabellenform ausgegeben.
Du erhälst nur eine Text-Info, dass x Zeilen in die temporäre Tabelle eingefügt worden sind.

Führst du dann in dem Abfragefenster ein
Code:
SELECT * FROM #DurchschnittsBestand
aus, so wird dir der Inhalt der temporären Tabelle auch in Tabellenform ausgegeben.

Ein weiteres Ausführen eines SELECT ... INTO führt dann auch zu einer Fehlermeldung.
SQL-Server meldet dann, dass die temporäre Tabelle bereits existiert.

Mit dem Befehl
Code:
DROP TABLE #DurchschnittsBestand
kannst du die temporäre Tabelle wieder entfernen.

Viele Grüße,
Tommi
 
Werbung:
Oben