lula25 10 Geschrieben 31. März 2009 Melden Teilen Geschrieben 31. März 2009 Hi, folgendes Problem treibt mich in den Wahnsinn: man nehme eine Abfrage, welche leicht verschachtelt ist und führe sie aus => Funktioniert. Nun schreibt man select * FROM ( <Abfrage> ) und man bekommt Fehler 8624Internal SQL Server Error. Es spielt keine Rolle, ob die Abfrage in einer View ist. Folgendes habe ich bei MS dazu bereits gefunden: FIX: You may receive an "Internal SQL Server error" error message when you run a Transact-SQL SELECT statement on a view that has many subqueries in SQL Server 2000. Darauf hin SP4 eingespielt. Das Ergebnis ist unverändert. Hat jemand eine Lösung dafür? grüße, Lula Zitieren Link zu diesem Kommentar
Perin 10 Geschrieben 31. März 2009 Melden Teilen Geschrieben 31. März 2009 Hi lula25, Wie soll jemand eine Lösung haben, wenn Du nicht Deine Abfrage postest? Wenn der Fehler nicht auf einen Fehler in Deiner Abfrage zurückzuführen ist (was man ja auch nicht ausschließen kann), könnte der Server einfach zu wenig RAM haben bzw. die Abfrage extrem große Datenmengen während der Ausführung produzieren. Was passiert, wenn Du statt "*" "COUNT(*)" schreibst? cu, Perin Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 31. März 2009 Melden Teilen Geschrieben 31. März 2009 Hallo und willkommen an Board Lula Interessant wäre es zu wissen, was für ein Statement du genau gegen deine DB abgesetzt hast. Für dieses Fehlerbild gibt es diverse Möglichkeiten. Pauschal verlinke ich dir mal noch zwei KBs: FIX: Error 8624 may occur with subquery that contains aggregate or computed columns FIX: You receive a "Server: Msg 8624, Level 16, State 1, Line 3 Internal SQL Server error." error message when you compile a delete query that contains sub-queries that use "NOT IN" clauses in SQL Server 2000 Gruß Carsten Zitieren Link zu diesem Kommentar
lula25 10 Geschrieben 1. April 2009 Autor Melden Teilen Geschrieben 1. April 2009 Die RAM-Variante würde ich ausschließen. WIr habe extra mal 2gig mehr eingebaut - keine verbesserung. Die Abfrage sieht wie folgt aus: SELECT TRA_Transaktion_ID=(SELECT 5--@TRA_Transaktion_ID@ ), count(distinct ao.objektnr) AS FELD_2667, --anz_vessel, count(distinct ao.krd_finanzierung_id) as anz_fin, SUM(bf.Saldo_Ende_EUR) AS FELD_2668, --as saldo, AVG(schiff_bf.LTV)AS FELD_2669, isnull(kl.name,'---') AS FELD_2665, --schiffsklasse, isnull(ukl.name,'---') AS FELD_2666 --schiffsunterklasse from qryBestandsfuehrung bf INNER JOIN KRD_Darlehen d ON bf.MTD_Mandant_ID = d.MTD_Mandant_ID AND bf.KRD_Darlehen_ID = d.KRD_Darlehen_ID INNER JOIN KRD_Assetobjekt ao ON d.KRD_Finanzierung_ID = ao.KRD_Finanzierung_ID AND d.MTD_Mandant_ID = ao.MTD_Mandant_ID INNER JOIN qryBerichtsperiode bp ON bf.STD_Periode_ID = bp.Letzte_ID AND bf.MTD_Mandant_ID = bp.MTD_Mandant_ID INNER JOIN qryTransaktion_Finanzierung_BP t ON d.MTD_Mandant_ID = t.MTD_Mandant_ID AND d.KRD_Darlehen_ID = t.KRD_Darlehen_ID INNER JOIN qryFinanzierung f ON d.KRD_Finanzierung_ID = f.KRD_Finanzierung_ID AND d.MTD_Mandant_ID = f.MTD_Mandant_ID INNER JOIN OBJ_SCHIFF_Bestandsfuehrung schiff_bf ON ao.KRD_Assetobjekt_ID = schiff_bf.KRD_Assetobjekt_ID AND ao.MTD_Mandant_ID = schiff_bf.MTD_Mandant_ID AND bp.Letzte_ID = schiff_bf.STD_Periode_ID AND bp.MTD_Mandant_ID = schiff_bf.MTD_Mandant_ID RIGHT OUTER JOIN OBJ_SCHIFF schiff LEFT OUTER JOIN OBJ_SCHIFF_Schiffsunterklasse ukl ON schiff.MTD_Mandant_ID = ukl.MTD_Mandant_ID AND schiff.OBJ_SCHIFF_Schiffsunterklasse_ID = ukl.OBJ_SCHIFF_Schiffsunterklasse_ID LEFT OUTER JOIN OBJ_SCHIFF_Schiffsklasse kl ON schiff.OBJ_SCHIFF_Schiffsklasse_ID = kl.OBJ_SCHIFF_Schiffsklasse_ID ON ao.KRD_Assetobjekt_ID = schiff.KRD_Assetobjekt_ID AND ao.MTD_Mandant_ID = schiff.MTD_Mandant_ID where bf.MTD_Mandant_ID=-2147483648--@MTD_Mandant_ID@ and bp.TRA_Berichtsperiode_ID=16--@TRA_Berichtsperiode_ID@ and t.TRA_Transaktion_ID=13--@TRA_Transaktion_ID@ and t.TRA_Berichtsperiode_ID=16--@TRA_Berichtsperiode_ID@ and f.Anzahl_Schiffe = 1 --nur 1:1-Finanzierungen group by ao.krd_finanzierung_id, schiff.obj_schiff_schiffsklasse_id, schiff.obj_schiff_schiffsunterklasse_id, kl.name , ukl.name Die Abfrage funktioniert. select * from ( <hier die abfrage> )t Funktioniert hingegen nicht. Auch select count(*) ... läuft auf den gleichen Fehler. Laut MS ist das von phoenixcp gelinkte Hotfix bzgl. Fehler bei aggregierten Feldern bereits im SP4 enthalten und darum nicht mehr verfügbar. Und SP4 ist bei uns installiert.... Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.