Abfragen von Access zum SQL Server

Access-Abfragen, die auf eingebundene Tabellen des SQL Servers zugreifen, haben so ihre Tücken, die sich meist in einer schlechten Performance auswirken. Die Ursache liegt im Zusammenspiel von Access und SQL Server. Im sechsten Artikel der Reihe wird beschrieben, wie Access mit SQL Server arbeitet und wie man diese Zusammenarbeit verbessern kann.

Der Artikel ist nach Anmeldung unter folgendem Link verfügbar: http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=618

Als Appetizer gibt es die erste Seite unter : http://www.access-im-unternehmen.de/fileadmin/files/1_SQLServer.pdf

Von 80 nach 90 – Empty SET Statement

In der Auflistung der nicht mehr unterstützten Features von SQL Server 2000 in SQL Server 2005 gibt es im Kompatibilitätslevel 80 den ominösen Eintrag „Empty SET statement (with no SET option assignments) is allowed.“ und für den Kompatibilitätslevel 90 den Eintrag „Empty SET clause is not allowed.“.

Was aber ist ein Empty SET-Statement?

Mein erster Gedanke war eine SET-Anweisung ohne weitere Zuweisung. Aber eigentlich war mir dieser Gedanke zu suspekt, denn was bringt eine SET-Anweisung ohne Zuweisung?

Erst nach etwas Recherche wurde ich fündig. Es ist in SQL Server 2000 tatsächlich möglich, in einer SP einfach mal ein SET zu plazieren – so ganz ohne Zuweisung.

Es gibt auch eine etwas seltsame Syntax, die – warum auch immer – verwendet wird:

DECLARE @CustomerId As nchar(5)
SET SELECT @CustomerId = ‚ALFKI‘
SELECT * FROM dbo.Customers WHERE CustomerId = @CustomerId

Ãœber Sinn und Unsinn der Anweisung SET SELECT möchte ich erst gar nicht nachdenken. Fakt ist, dass der SQL Server daraus 2 Anweisungen (SET und SELECT) erzeugt. Und eine SET-Anweisung ohne Zuweisung ist mit SQL Server 2005 nicht mehr möglich.

SQL Server 2008 verfügbar

Nun ist es passiert: SQL Server 2008 ist offiziell freigegeben.

Zurzeit ist SQL Server 2008 allerdings nur für MSDN-Mitglieder als Download in englischer Sprache verfügbar. Einen aktuellen Releasetermin konnte ich bis jetzt noch nicht entdecken. Lt. einer MSDN-Meldung soll dies aber auch noch im August 2008 der Fall sein.