Office: Access SQL mit SQL Server TSQL vergleichen

Helfe beim Thema Access SQL mit SQL Server TSQL vergleichen in Microsoft Access Tutorials um das Problem gemeinsam zu lösen; Access SQL mit SQL Server TSQL vergleichen Access für Microsoft 365 Access 2019... Dieses Thema im Forum "Microsoft Access Tutorials" wurde erstellt von Tutorials, 1. Januar 2020.

  1. Tutorials
    Tutorials Neuer User

    Access SQL mit SQL Server TSQL vergleichen


    Access SQL mit SQL Server TSQL vergleichen
    Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Mehr... Weniger Wenn Sie Ihre Access-Daten zu SQL Server migrieren oder eine Access-Lösung mit SQL Server als Back-End-Datenbank erstellen, ist es wichtig, dass Sie die Unterschiede zwischen Access SQL und SQL Server Transact SQL (TSQL) kennen. Im Folgenden werden die wichtigsten Unterschiede aufgeführt, die Sie kennen müssen, damit Ihre Lösung wie vorgesehen funktioniert.

    Weitere Informationen finden Sie unter Access SQL: grundlegende Konzepte, Vokabular und Syntax und Transact-SQL-Referenz.

    Syntax- und Ausdrucksunterschiede
    Es gibt ein paar Syntax- und Ausdrucksunterschiede, die eine Konvertierung erfordern. Die folgende Tabelle fasst die häufigsten zusammen.

    Unterschied

    Access SQL

    SQL Server TSQL

    Relationales Datenbankattribut

    Wird in der Regel als Feld bezeichnet

    Wird in der Regel als Spalte bezeichnet

    Zeichenfolgenliterale

    Anführungszeichen ("), z. B."Mary Q. Contrary"

    Apostroph ('), z. B.'Mary Q. Contrary'

    Datumsliterale

    Nummernzeichen (#), z. B. #1.1.2019#

    Apostroph ('), z. B. '1.1.2019'

    Mehrfache Platzhalterzeichen

    Sternchen (*), z. B. "Cath*"

    Prozent (%), z. B. "Cath%"

    Einfache Platzhalterzeichen

    Fragezeichen (?), z. B. "Cath?"

    Unterstrich (_), z. B. "Cath_"

    Modulo-Operator

    MOD-Operator, z. B. Wert1 MOD Wert2

    Prozent (%), z. B. Wert1 % Wert2

    Boolesche Werte

    WO Bitwert = [Wahr | Falsch]

    Oder

    WO Bitwert = [-1 | 0]

    WO Bitwert = [1 | 0]

    Parameter

    []

    Oder

    Verwenden Sie in der SQL-Ansicht die SQL-Parameterdeklaration

    @ParamName

    Hinweise

    • Access verwendet Anführungszeichen (") um Tabellennamen und Objekte herum. T-SQL kann sie für Tabellennamen mit Leerzeichen verwenden. Dies ist jedoch keine Standardbenennungsmethode. In den meisten Fällen sollten Objektnamen ohne Leerzeichen umbenannt werden, Abfragen müssen aber auch so umgeschrieben werden, dass Sie neuen Tabellennamen entsprechen. Verwenden Sie Klammern [] für Tabellen, die nicht umbenannt werden können, die jedoch nicht den Benennungsstandards entsprechen. Außerdem klammert Access Parameter in Abfragen zusätzlich ein, sie können jedoch in T-SQL entfernt werden.
    • Erwägen Sie die Verwendung des kanonischen Datumsformats yyyy-mm-dd hh:nn:ss, bei dem es sich um einen ODBC-Standard für Datumsangaben handelt, die als Zeichen gespeichert sind. Er bietet eine konsistente Methode, sie datenbankübergreifend darzustellen, und erhält die Sortierreihenfolge des Datums aufrecht.
    • Um Verwechslungen beim Vergleichen von booleschen Werten zu vermeiden, können Sie den folgenden Vergleich für Access und SQL Server verwenden:
      • Test für falschen Wert WO Bitwert = 0
      • Test für wahren Wert WO Bitwert <> 0
    Nullwerte
    Ein Nullwert ist kein leeres Feld, d. h. "überhaupt kein Wert". Ein Nullwert ist ein Platzhalter, d. h., dass Daten fehlen oder unbekannt sind. Datenbanksysteme, die Nullwerte erkennen, implementieren "dreiwertige Logik". Das bedeutet, dass ein Element wahr, falsch oder unbekannt sein kann. Wenn Sie Nullwerte nicht richtig behandeln, können Sie bei Übereinstimmungsvergleichen oder der Auswertung von WHERE-Klauseln falsche Ergebnisse erhalten. Nachfolgend wird verglichen, wie Access und SQL Server Nullwerte behandeln.

    Deaktivieren von Nullwerten in einer Tabelle

    In Access und SQL Server sind Nullwerte standardmäßig aktiviert. Zum Deaktivieren von Nullwerten in einer Tabellenspalte gehen Sie folgendermaßen vor:

    • Stellen Sie in Access die Eigenschaft Pflichtfeld auf "Ja" ein.
    • Fügen Sie in SQL Server das NOT NULL-Attribut zu einer Spalte in einer CREATE TABLE-Anweisung hinzu.
    Test für Nullwerte in einer WHERE-Klausel

    Verwenden der Vergleichsprädikate IS NULL und IS NOT NULL:

    • Verwenden Sie in Access IS NULL oder IS NOT NULL. Beispiel:
    • Verwenden Sie in SQL Server IS NULL oder IS NOT NULL. Beispiel:

    Konvertieren von Nullwerten mit Funktionen

    Verwenden Sie die Nullfunktionen, um ihre Ausdrücke zu schützen und alternative Werte zurückzugeben:

    • Verwenden Sie in Access die NZ (Wert, [WertWennNull])-Funktion, die 0 oder einen anderen Wert zurückgibt. Beispiel:
    • Verwenden Sie in SQL Server die ISNULL-Funktion (Wert, replacement_value), die 0 oder einen anderen Wert zurückgibt. Beispiel:

    Grundlegendes zu Datenbankoptionen

    Bei einigen Datenbanksystemen gibt es proprietäre Mechanismen:

    • In Access stehen keine Datenbankoptionen zur Verfügung, die sich auf "Null" beziehen.
    • In SQL Server können Sie die Option „SET ANSI_NULLS OFF“ mithilfe der Operatoren „=“ und „<“, „>“ für direkte Übereinstimmungsvergleiche mit „NULL“ verwenden. Wir empfehlen, diese Option zu vermeiden, da sie veraltet ist und Andere verwirren kann, die auf ISO-konforme Null-Behandlung angewiesen sind.
    Konvertierung und Umwandlung
    Wenn Sie mit Daten arbeiten oder programmieren, ist es ständig erforderlich, Datentypen zu konvertieren. Der Vorgang der Konvertierung kann einfach oder komplex sein. Häufig auftretende Probleme, die Sie berücksichtigen müssen, sind: implizite oder explizite Konvertierung, die Ländereinstellungen für das aktuelle Datum und die Uhrzeit, das Runden oder Abschneiden von Zahlen sowie die Größe des Datentyps. Um eine sorgfältige Prüfung und Bestätigung Ihrer Ergebnisse kommen Sie nicht herum.

    In Access verwenden Sie die elf Typkonvertierungsfunktionen – eine für jeden Datentyp, die alle mit dem Buchstaben C beginnen. Wenn Sie beispielsweise eine Gleitkommazahl in eine Zeichenfolge konvertieren möchten:

    In SQL Server verwenden Sie hauptsächlich die TSQL-Funktionen UMWANDELN und KONVERTIEREN, obwohl es noch andere Konvertierungsfunktionen für spezielle Anforderungen gibt. Wenn Sie beispielsweise eine Gleitkommazahl in eine Zeichenfolge konvertieren möchten:

    Die Funktionen "DateAdd", "DateDiff" und "DatePart"
    Diese häufig verwendeten Datumsfunktionen sind in Access und TSQL ähnlich (DateAdd, DateDiff und DatePart), aber die Verwendung des ersten Arguments ist unterschiedlich.

    • In Access wird das erste Argument als Intervallbezeichnet. Es ist ein Zeichenfolgenausdruck, der Anführungszeichen erfordert.
    • In SQL Server wird das erste Argument datepart genannt. Es verwendet Schlüsselwortwerte, die keine Anführungszeichen erfordern.

      [parsehtml]<table id="tblID0EAAAACAAA"> <tbody> <tr> <td> <p> <b>Komponente</b> </p> </td> <td> <p> <b>Access</b> </p> </td> <td> <p> <b>SQL Server</b> </p> </td> </tr> <tr> <td> <p>Jahr</p> </td> <td> <p>"yyyy"</p> </td> <td> <p>year, yy, yyyy</p> </td> </tr> <tr> <td> <p>Quartal</p> </td> <td> <p>"q"</p> </td> <td> <p>quarter, qq, q</p> </td> </tr> <tr> <td> <p>Monat</p> </td> <td> <p>"m"</p> </td> <td> <p>month, mm, m</p> </td> </tr> <tr> <td> <p>Tag des Jahres</p> </td> <td> <p>"y"</p> </td> <td> <p>dayofyear, dy, y</p> </td> </tr> <tr> <td> <p>Tag</p> </td> <td> <p>"d"</p> </td> <td> <p>day, dd, d</p> </td> </tr> <tr> <td> <p>Woche</p> </td> <td> <p>"ww"</p> </td> <td> <p>wk, ww</p> </td> </tr> <tr> <td> <p>Wochentag</p> </td> <td> <p>"w"</p> </td> <td> <p>weekday, dw</p> </td> </tr> <tr> <td> <p>Stunde</p> </td> <td> <p>"h"</p> </td> <td> <p>hour, hh</p> </td> </tr> <tr> <td> <p>Minute</p> </td> <td> <p>"n"</p> </td> <td> <p>minute, mi, n</p> </td> </tr> <tr> <td> <p>Sekunde</p> </td> <td> <p>"s"</p> </td> <td> <p>second, ss, s</p> </td> </tr> <tr> <td> <p>Millisekunde</p> </td> <td /> <td> <p>millisecond, ms</p> </td> </tr> </tbody> </table>[/parsehtml]
    Vergleich von Funktionen
    Access-Abfragen können berechnete Spalten enthalten, die manchmal Access-Funktionen verwenden, um Ergebnisse zu erhalten. Wenn Sie Abfragen zu SQL Server migrieren, müssen Sie die Access-Funktion durch eine entsprechende TSQL-Funktion ersetzen, sofern verfügbar. Wenn keine entsprechende TSQL-Funktion vorhanden ist, können Sie in der Regel eine berechnete Spalte erstellen (für eine berechnete Spalte verwendeter TSQL-Ausdruck), um die gewünschten Aktionen auszuführen. TSQL verfügt über eine breite Palette von nützlichen Funktionen. Sehen Sie sie sich an. Weitere Informationen finden Sie unter Was sind die Funktionen der SQL-Datenbank?.

    Die folgende Tabelle zeigt, welche Access-Funktion über eine entsprechende TSQL-Funktion verfügt.

    Access-Kategorie

    Access-Funktion

    TSQL-Funktion

    Konvertierung

    Chr-Funktion

    CHAR

    Konvertierung

    Day-Funktion

    DAY

    Konvertierung

    FormatNumber-Funktion

    FORMAT

    Konvertierung

    FormatPercent-Funktion

    FORMAT

    Konvertierung

    Str-Funktion

    STR

    Konvertierung

    Typumwandlungsfunktionen

    UWANDELN und KONVERTIEREN

    Datum/Uhrzeit

    Date-Funktion

    CURRENT_TIMESTAMP

    Datum/Uhrzeit

    Day-Funktion

    DATEFROMPARTS

    Datum/Uhrzeit

    DateAdd-Funktion

    DATEADD

    Datum/Uhrzeit

    DateDiff-Funktion

    DATEDIFF

    DATEDIFF_BIG

    Datum/Uhrzeit

    DatePart-Funktion

    DATEPART

    Datum/Uhrzeit

    DateSerial-Funktion

    DATEFROMPARTS

    Datum/Uhrzeit

    DateValue-Funktion

    DATENAME

    Datum/Uhrzeit

    Hour-Funktion

    TIMEFROMPARTS

    Datum/Uhrzeit

    Minute-Funktion

    TIMEFROMPARTS

    Datum/Uhrzeit

    Month-Funktion

    MONAT

    Datum/Uhrzeit

    Now-Funktion

    SYSDATETIME

    Datum/Uhrzeit

    Second-Funktion

    TIMEFROMPARTS

    Time-Funktion

    TIMEFROMPARTS

    Datum/Uhrzeit

    TimeSerial-Funktion

    TIMEFROMPARTS

    Datum/Uhrzeit

    Weekday-Funktion

    DATEPART

    DATENAME

    Datum/Uhrzeit

    Jahr-Funktion

    YEAR

    DATEFROMPARTS

    Domänenaggregat

    DFirst- und DLast-Funktion

    FIRST_VALUE

    LAST_VALUE

    Mathematisch

    Abs-Funktion

    ABS

    Mathematisch

    Atn-Funktion

    ATAN

    ATN2

    Mathematisch

    Cos-Funktion

    COS

    ACOS

    Mathematisch

    Exp-Funktion

    EXP

    Mathematisch

    Int- und Fix-Funktion

    FLOOR

    Mathematisch

    Log-Funktion

    LOG

    LOG10

    Mathematisch

    Rnd-Funktion

    RAND

    Mathematisch

    Round-Funktion

    ROUND

    Mathematisch

    Sgn-Funktion

    SIGN

    Mathematisch

    Sin-Funktion

    SIN

    Mathematisch

    Sqr-Funktion

    SQRT

    Programmablauf

    Choose-Funktion

    CHOOSE

    Programmablauf

    Wenn-Funktion

    IIF

    Statistisch

    Avg-Funktion

    AVG

    SQL-Aggregat

    Count-Funktion

    COUNT

    COUNT_BIG

    SQL-Aggregat

    Min- und Max-Funktion

    MIN

    MAX

    SQL-Aggregat

    StDev- und StDevP-Funktion

    STDEV

    STDEVP

    SQL-Aggregat

    Sum-Funktion

    SUM

    SQL-Aggregat

    Var- und VarP-Funktion

    VAR

    VARP

    Text

    Format (Funktion)

    FORMAT

    Text

    LCase-Funktion

    LOWER

    Text

    Left-Funktion

    LEFT

    Text

    Len-Funktion

    LEN

    Text

    LTrim-, RTrim- und Trim-Funktion

    TRIM

    LTRIM

    RTRIM

    Text

    Replace-Funktion

    REPLACE

    Text

    Right-Funktion

    RIGHT

    Text

    StrReverse-Funktion

    REVERSE

    Text

    UCase-Funktion

    UPPER

    :)
     
    Zuletzt von einem Moderator bearbeitet: 18. Januar 2021
    Tutorials, 1. Januar 2020
    #1
Thema:

Access SQL mit SQL Server TSQL vergleichen

Die Seite wird geladen...
  1. Access SQL mit SQL Server TSQL vergleichen - Similar Threads - Access SQL SQL

  2. Access - SQL: Inhalt auf 255 Zeichen beschränkt

    in Microsoft Access Hilfe
    Access - SQL: Inhalt auf 255 Zeichen beschränkt: Hallo zusammen, in Access habe ich ein Modul mit folgender Funktion: Public Function SQLListe(Nummer As Long) As String Dim strSQL As String Dim rs As DAO.Recordset strSQL = "SELECT Dokument...
  3. Abfrage mit den jüngsten Einträgen erstellen

    in Microsoft Access Hilfe
    Abfrage mit den jüngsten Einträgen erstellen: Hallo liebe Experten, ich bastel gerade an einer Access-Datenbank für die Besuche meiner Klienten. Aus meiner Tabelle "KlientenT" und einer weiteren Tabelle mit "BesucheT" möchte ich eine Abfrage...
  4. Tabellen-Datenquelle in ganzem Dokument ändern

    in Microsoft Access Hilfe
    Tabellen-Datenquelle in ganzem Dokument ändern: Hallo, ich habe eine Access-Datenbank (FE & BE getrennt) mit mehreren Tabellen, Abfragen und Formularen. Nun möchte ich das BE nach SQL migrieren. Den Assistenten hierzu scheint es ja nicht mehr...
  5. Access to SQL Server

    in Microsoft Access Hilfe
    Access to SQL Server: Hallo, ich bin aktuell mit der Aufgabe beschäftigt eine Access Datenbank in SQL zu migrieren. Soweit so gut. Da es aber eine Übergangszeit geben wird, wird ein Nächtlicher Datenbankabgleich...
  6. Acces FrontEnd und MS SQL-Server als BackEnd

    in Microsoft Access Hilfe
    Acces FrontEnd und MS SQL-Server als BackEnd: Hallo zusammen, möchte MS access 2010 als FrontEnd und MS SQL-Server als Backend verwenden. Die Backend Tabellen sind bereits auf dem Server. Mit welchem VBA-Code sollte ich nun die MS...
  7. Access SQL Abfrage

    in Microsoft Access Hilfe
    Access SQL Abfrage: Guten MOrgen, ich bin grade etwas unglücklich über meine SQL Abfrage Code: SELECT MITGLIED.NAME, MITGLIED.VORNAME, MITGLIED.AUSWEISNR, FucAlter([Mitglied].[Geburtstag]) AS [Alter],...
  8. 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...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden