Like, Alike, *, % und die Kompatibilität

Es gibt Dinge, die gehen an einem vorbei, ohne dass man es merkt. Das war bei mir der Fall mit den Thema der überschrift: Ich arbeite größtenteils mit Access-Datenbanken und weiß, dass dort das Sternchen (*) als Platzhalter für beliebige Zeichen beim Einsatz des Like-Operators zum Einsatz kommt. Und wenn ich mal mit dem SQL Server arbeite, dann weiß ich, dass dort stattdessen das Prozentzeichen gefragt ist (%). Neulich erhielt ich aber eine Datenbank von einem Leser, der sich wunderte, warum eine Lösung bei ihm schlicht nicht arbeitete. Nach einigen Experimenten und einer Internetrecherche war die Lösung gefunden: Der Leser betrieb die Datenbank im SQL-92-Kompatibiltätsmodus, was bedeutet, dass die Platzhalter des SQL Servers in LIKE-Vergleichen zum Einsatz kommen. Was es damit auf sich hat und wie Sie damit umgehen, erfahren Sie im vorliegenden Beitrag.

Standardmäßig arbeitet Access mit Access-SQL, was beispielsweise heißt, dass als Platzhalter für beliebig viele Zeichen in einem LIKE-Ausdruck das Sternchen zum Einsatz kommt und als Platzhalter für genau ein Zeichen das Prozentzeichen.

Im SQL Server ist das anders: Hier setzt man für beliebig viele Zeichen das Prozentzeichen als Platzhalter (%) und für ein einziges Zeichen den Unterstrich (_).

SQL Server-kompatible Syntax

Allerdings kann man bereits seit Access 2010 in den Access-Optionen einstellen, in welchem Modus künftig neu erstellte Datenbanken arbeiten sollen. Dazu öffnen Sie die Access-Optionen und wechseln zum Bereich Objekt-Designer|Abfrageentwurf|SQL Server-kompatible Syntax (ANSI92). Die dortige Option Standard für neue Datenbanken ist üblicherweise nicht aktiviert (siehe Bild 1). Dementsprechend ist auch die nicht direkt bearbeitbare Eigenschaft In dieser Datenbank verwenden normalerweise nicht aktiviert.

Einstellungen für die SQL-Syntax

Bild 1: Einstellungen für die SQL-Syntax

Erst wenn wir die Eigenschaft Standard für neue Datenbanken in den Access-Optionen einer beliebigen Datenbank (oder auch in einer Access-Instanz ohne geöffnete Datenbank – dazu nach dem öffnen die Escape-Taste drücken, um den Datei öffnen-Bereich auszublenden) aktivieren, wird eine anschließend neu erstellte Datenbank im SQL Server-kompatiblen Modus geöffnet.

Wenn Sie nun eine neue Datenbank erstellen und den Optionen-Dialog erneut öffnen, sind beide Optionen aktiviert. Und Sie können die Option In dieser Datenbank verwenden sogar direkt einstellen (siehe Bild 2).

Aktivierte SQL Server-kompatible Syntax

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar