Office: SQL-Server unsterstützt die First() Funktion nicht

Helfe beim Thema SQL-Server unsterstützt die First() Funktion nicht in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, im migriere gerade das erste Backend von einer ACCDB auf den MS SQL-Server 2016 (13.0.5101.9). Das funktioniert auch alles soweit ganz... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von BeckerThomas, 4. Januar 2020.

  1. SQL-Server unsterstützt die First() Funktion nicht


    Hallo zusammen,
    im migriere gerade das erste Backend von einer ACCDB auf den MS SQL-Server 2016 (13.0.5101.9).
    Das funktioniert auch alles soweit ganz gut.
    Bei der Performanceoptimierung durch den Einsatz von PassThrough Abfragen, habe ich jetzt feststellen müssen, dass die First() Funktion nicht vom SQL-Server 2016 unterstützt wird.
    Natürlich könnte ich jetzt ein „Select TOP 1 ….“ einsetzten, müsste dann aber zig Abfragen anpassen.
    Gibt es hier einen besser Möglichkeit?
    Dachte ich frage mal bevor ich mir einen Haufen Arbeit mache, die unter Umständen nicht notwendig wäre.
    Beste Grüße
    Thomas

    :)
     
    BeckerThomas, 4. Januar 2020
    #1
  2. Wer in der Lage ist zu googeln wird binnen zwei Sekunden feststellen, dass die Funktion beim MS SQL Server FIRST_VALUE heißt. *wink.gif*

    Du wirst dann anhand der Hilfe auch herausfinden, warum das ganze nicht 1:1 wie bei Access umgesetzt wurde.
    Da liegen halt Welten zwischen den beiden Servern und um die Vorteile zu nutzen wirst du auch da und dort anpassen müssen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 6. Januar 2020
    #2
  3. Danke für die Info.

    KEIN Danke für Deinen Oberlehrer-TON

    >Wer in der Lage ist zu googeln wird binnen zwei Sekunden feststellen<

    Warum muss das sein? Fühlst Du Dich dann besser?
     
    BeckerThomas, 6. Januar 2020
    #3
  4. SQL-Server unsterstützt die First() Funktion nicht

    First/Last sind in Access/Jet-SQL ein recht unsicheres Geschäft, da sie eine vorgegebene Reihenfolge voraussetzen, welche man aber in Unkenntnis einer Abfrageabarbeitung und eines sich ergebenden Ablaufplanes gar nicht kennen oder gar vorhersagen kann. Min/Max wären da erheblich zielführender.

    Insofern wäre eine Überarbeitung von ...zig Abfragen eher eine Wohltat.
     
  5. Nein, aber wenn wir schon dabei sind.

    Ich finde es unerträglich, wenn User keine Eigeninitiative zeigen.
    Schon mit ministerialster Anstrengung hättest du ja gesehen,
    dass das Thema schon unzählige Male behandelt wurde.

    Auch ein direkter Blick in die Hilfe hätte das gezeigt.

    So und jetzt kannst du uns mal erklären, was du gemacht hast vor du den Thread eröffnet hast.

    Einfach unfassbar so eine Haltung bei einem "Programmierer".
    Also nicht wundern, wenn da etwas Ironie mitschwingt.
    Aber statt dich selbst bei der Nase zu nehmen, glaubst du die anderen haben das Problem.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 6. Januar 2020
    #5
  6. Hab mir das gerade angeschaut.

    Durch den Einsatz der Funktion FIRST_VALUE .. OVER.. verliert man, so wie ich das verstehe, die Kompatibilität zu einem reinen Access Backend.

    Da erscheint mir die Lösung mit einer Unterabfrage "SELECT TOP 1 ... " (die ich per Google gefunden habe) ggf. noch die bessere Alternative zu sein, da diese Abfrage auch mit dem reinen Access Backend läuft.
     
    BeckerThomas, 6. Januar 2020
    #6
  7. Keine Ahnung für was Du Dich hältst, das Du denkst ich müsste mich vor Dir rechtfertigen.

    Antwortet einfach nicht, wenn Du meinst das der Fragende ein Volldepp ist.

    Das macht Dir und dem der fragt, das Leben deutlich angenehmer.

    Mir sind Antworten lieber, von Leuten die helfen wollen und nicht die ihr kleines Ego aufbessern müssen.
     
    BeckerThomas, 6. Januar 2020
    #7
  8. SQL-Server unsterstützt die First() Funktion nicht

    Wenn diese Dein Ansinnen ist, dürfte die Migration zum SQL Server ein Schuss in den Ofen sein, in vielerlei Hinsicht.
     
  9. Nein, der Fragende sollte aber vor dem Fragen sich erstmal selbst schlau machen.

    Das ist die Kritik und die ist wohl mehr als angebracht.

    Es soll ja auch Menschen geben, die aus Kritik was lernen. *wink.gif*


    Und nur so als Hinweis.
    Select Top 1 kann in Access andere Ergebnisse liefern wie beim SQL Server.
    Wenn der erste Wert mehrfach vorkommt, dann wirst du bei Top 1 auch entsprechend viele Zeilen im Recordset finden. Beim SQL Server nicht.
    (Siehe OLH -> WITH TIES)
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 6. Januar 2020
    #9
  10. Nur der Vollständigkeit halber ...

    Bei dem "Google Vorschlag"
    SELECT TOP 1 kann man durch eine GROUP BY Anweisung doppelte Datensätze verhindern.

    Falls das jemand mal versuchen will.
     
    BeckerThomas, 6. Januar 2020
    #10
  11. Klar kannst du mittels Group by mehrfache Ergebnisse von Top 1 wieder eliminieren.

    Bei dem Beispiel ging es darum zu verstehen, dass die selbe Funktion bei verschiedenen DB-Systemen unterschiedliche Ergebnisse hervorbringen kann.

    Es macht Sinn sich mit den Möglichkeiten des Servers zu beschäftigen.
    Das Problem für Umsteiger ist ja, da sie in Gewissen Bahnen denken.
    Sollte man davor nur mit Access als DB gearbeitet haben, erahnt man ja in keinster Weise was moderne DB Systeme wie Oracle, MSSQL usw. zu leisten vermögen.

    Diese Möglichkeiten kann man dann auch nur nutzen, wenn man sich in die Thematik einliest. Grade bei den Arregatfunktionen ist der Unterschied riesig.
     
    markusxy, 6. Januar 2020
    #11
  12. In einigen Fällen sicherlich, generell nicht.

    Eine TOP-X-Gestaltung basiert auf einer eigenen Sortierung. Wenn man gesichert eindeutig sortieren möchte, würde man ein Feld mit eindeutigen Inhalten einbeziehen. Ein Gruppieren auf ein eindeutiges Feld wäre aber ergebnis- und witzlos.
     
  13. SQL-Server unsterstützt die First() Funktion nicht

    SELECT TOP 1 Tabelle.Feld1
    FROM Tabelle
    WHERE (((Tabelle.Feld1)=x))
    GROUP BY Tabelle.Feld1
    ORDER BY Tabelle.Feld1;
     
    BeckerThomas, 6. Januar 2020
    #13
  14. Wie gesagt das ist meine erste Migration.

    Die Anwendung läuft bei einigen Kunden und ich würde ungern zwei Versionen (eine für AccDb und eine für SQL-Server als Backend) pflegen müssen.

    Bis alle Kunden auf den SQL-Server umgestellt sind wäre mir eine "softe" Migration lieber, auch wenn die nicht gleich die ganzen Vorteile eines SQL-Servers nutzt, aber dafür auch noch mit der AccDB zurecht kommt.

    Hat jemand schon einmal mit so einer Herangehensweise Erfahrung?

    Gruß
    Thomas
     
    BeckerThomas, 6. Januar 2020
    #14
  15. \@ebs17 und @murksy

    Ich bin mir wohl bewusst, dass der SQL-Server eine ganz andere Nummer ist.
    Aber ich will auch hier zu bedenken geben, dass das Frontend eine AccDB ist und ich nur kleine Anwendungen erstellen, die kein Atomkraftwerk steuern oder Millionen von Transaktionen in kurzer Zeit bewältigen müssen.

    Und natürlich habe ich mich vorher eingelesen – ich müsste verrückt sein, wenn ich das nicht machen würde.
    Da ich seit Jahrzehnten Access im Unternehmen lese habe ich mich für das Buch von Herr Minhorst "Access und SQL-Server" entschieden und dies brav durchgearbeitet. Leider steht in diesem Buch nichts davon, dass es die Funktion First() nicht mehr auf dem SQL-Server gibt.

    Also habe ich gegoogelt und den Vorschlag mit Select TOP 1 gefunden. Da mir dies aber ich nicht ganz geheuer war, habe ich mich getraut in euer heiliges Forum eine Frage zu stellen ohne vorher ein Informatikstudium zu machen. Sorry dafür ...
    Mir tut das mittlerweile auch schon richtig leid ...

    Als ich mit dem Programmieren angefangen, habe ich hier im Forum immer nette und kompetente Hilfe erfahren.

    Warum es mittlerweile wichtiger ist zu beweisen, dass der Fragende keine Ahnung hat, sich nicht genügend angestrengt hat, etwas will was keinen Sinn macht usw. usw. verstehe ich nicht so richtig. Seltsamer Weise sind es immer die gleichen User die sich so verhalten und eigentlich nicht wirklich zu einer Problemlösung betragen.

    Ist euch eurer Zeit nicht zu schade dafür? Habt ihr nichts Besseres zu tun zum Beispiel einem Fragenden wirklich helfen? Oder braucht Ihr das – ich brauche das ehrlich gesagt nicht mehr.

    Ups jetzt ist es doch passiert ich rechtfertig mich ...
    Schade für die Zeit ...
    Also in diesem Sinne gute Nacht.

    Gruß
    Thomas
     
    BeckerThomas, 6. Januar 2020
    #15
Thema:

SQL-Server unsterstützt die First() Funktion nicht

Die Seite wird geladen...
  1. SQL-Server unsterstützt die First() Funktion nicht - Similar Threads - SQL Server unsterstützt

  2. Backup SQL Server Datenbank VBA

    in Microsoft Access Hilfe
    Backup SQL Server Datenbank VBA: Hallo an alle! Ich bastle gerade an einem Modul für eine Datensicherung für den MS SQL-Server aus einem MS Access Frontend heraus. Irgendwie habe ich einen Knoten, ich schaffe es nicht den String...
  3. Zugriff auf verknüpfte SQL Server Tabelle

    in Microsoft Access Hilfe
    Zugriff auf verknüpfte SQL Server Tabelle: Hallo, mit dem folgenden Code möchte ich eine Änderung des MWSt-Satzes in eine verknüpfte SQL-Server Tabelle zu schreiben: Private Sub txtMWStSatz_AfterUpdate() Dim db As DAO.Database Dim rst As...
  4. Access Runtime mit SQL Server

    in Microsoft Access Hilfe
    Access Runtime mit SQL Server: Hallo, wie verteile ich ein Access-Frontend mit verknüpften SQL Server Tabellen in der Runtime-Version? Ich habe schon viel experimentiert mit DNS-Datei, Computer-DNS ... klappt alles nicht...
  5. Verbindung zu SQL-Server mittels VBA

    in Microsoft Access Hilfe
    Verbindung zu SQL-Server mittels VBA: Hallo Allerseits, Anmerkung: Ich nutze Access 365. Ich hab mittlerweile viele Stunden im Forum gesucht und gegoogelt, komme aber nicht weiter. Deshalb hier ein neues Thema. Ich habe eine...
  6. Verknüpfen oder Importieren von Daten aus einer Azure SQL Server-Datenbank

    in Microsoft Access Tutorials
    Verknüpfen oder Importieren von Daten aus einer Azure SQL Server-Datenbank: Verknüpfen oder Importieren von Daten aus einer Azure SQL Server-Datenbank Access für Microsoft 365 Access 2019 Mehr... Weniger...
  7. Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht

    in Microsoft Access Tutorials
    Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht: Access erkennt die Identitätsspalte in einer verknüpften SQL Server-Tabelle nicht Access für Microsoft 365 Access 2019 Access 2016 Mehr... Weniger...
  8. Importieren von oder Verknüpfen mit Daten in einer SQL Server-Datenbank

    in Microsoft Access Tutorials
    Importieren von oder Verknüpfen mit Daten in einer SQL Server-Datenbank: Importieren von oder Verknüpfen mit Daten in einer SQL Server-Datenbank Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access...