Vielleicht stehen Sie gerade vor der Entscheidung statt Access einen SQL Server einzusetzten. Und vielleicht haben Sie auch schon bemerkt, dass einige der Access Abfragen in SQL nicht mehr funktionieren, obwohl sie in Access ihre Dienste taten. Ich kann SIe beruhigen. Sie müssen keine ServicePack installieren oder dergeleichen. Access und T-SQL benutzen in manchen Dingen verschiedene Befehle. Einge stelle ich Ihnen hier vor:
Autowerte
In Access können Autowerte in einem Menü angeben werden um so einen eindeutigen Bezeichner für den Datensatz zu haben. Unter MS SQL Server müssen sie die Checkbox IDENTITY anschalten. Vorsicht! Autowert und Identity verhalten sich verschieden. Der Identity Wert wird unter SQL erst nach dem Speichern gesetzt.
Wildcards
Innerhalb Access konnten Sie für Wildcards mit * und ? setzten. Dabei stand * für einen beliebige Anzahl an Zeichen während ? für genau ein Zeichen stand. Unter T-SQL verwendet man anstatt "*" nun "%" und statt "?" "_".
Stringverkettung
Möchten Sie in Access Strings miteinander verketten, so können Sie das mit "&" tun. In T_SQL sieht die Sache schon wieder anders aus. Hier verwendet man "+". Aber vorsicht! Aufpassen, daß sie keine Zahlenwerte verknüpfen wollen. Denn diese würden addiert werde.
Zeichenketten
Auch hier stolpern Entwickler immer wieder. In Access werden Abfragebedingungen mit "" eingegrenzt.
Select * from Authors where bedingung like 'bed1' statt Select * from Authors where bedingung like "bed1" |
In T-SQL müssen sie die Bedingung mit 'bed1' eingrenzen.
DISTINCTROW
Um doppelte Datensätze auszufiltern verwendet man in Access distinctrow. In T-SQl ist dieser Befehl unbekannt. Hier verwendet man den Befehl distinct.
Select distinct * from authors |
TRIM
Mittels TRIM wird unter Access Leerstellen aus einem String entfernt. In T-SQL ist die UNterdrückung von Leerstellen mit den Funktionen RTRIM und LTRIM bereitgestellt.
LTRIM entfernt die linken Leerstellen, also die Leerstellen am Anfang des Strings.
RTRIM entfernt die rechten Leerstellen, also die Leerstellen am Ende des Strings.
MID
Die Access Funktion MID um nach bestimmten Zeichen in Strings zu suchen, gibts natürlcih in T-SQL wie nicht anders zu erwarten nicht. Verwenden hier den Befehl
SUBSTRING(expression, start, length). |
IIF
Vielleicht kennen sie in Access oder VB den Befehl IIF. Der dient eigentlich dazu eine einfache If then else Anweisung abzukürzen. T-SQL kennt diese Anweisung so nicht. Also umdenken. Verwenden Sie dazu CASE:
CASE WHEN Bedingung = "bed1" THEN 'interessant' ELSE 'nicht interessant' END
|