Does Microsoft Access 2003 enthalten Sätze oder Multimengen?
-
19-09-2019 - |
Frage
Ich versuche, zu bestätigen oder dementieren, ob Sie eine Spalte der Tabelle in MS Access 2003 als Set definieren können. Es scheint, dies in Office 2007 implementiert - Sie können eine Spalte definieren eine ‚Multi-Select-Liste‘ in der Abfrage haben / Lookup, aber diese Funktion erscheint auf das neue Access 2007-Dateiformat eindeutig zu sein soweit ich feststellen kann.
abgefaßt eine andere Art und Weise, hat MS Access 2003 hat die äquivalent zu der SQL-Anweisung:
CREATE TABLE mytable (foo VARCHAR(10), bar VARCHAR(5) MULTISET);
Oder gibt es eine clevere Abhilfe etwas ähnliches zu erreichen? Ich würde in Access 2003 eine Antwort, die Informationen über Inkasso Konstrukteurs nehmen.
Lösung
Beziehen Sie sich auf die Access-Datenbank-Engine mehrwertiges Datentypen ? Wenn ja, dann ja, diese den ACE neu (2007) Version des Motors und sind nicht in Jet 4.0 Access2003-Version des Motors ist.
versuchte FWIW ich Ihre SQL in Access2007 mit ANSI-92-Abfragemodus (OLE DB, Motortyp = 5) und das MULTISET Schlüsselwort wurde nicht erkannt.
Beachten Sie nicht brauchen, können noch wollen mehrwertig Typen. Eine besondere Kritik ist, dass Access-Datenbank SQL DML Ausdrücke Dienst nicht zu berücksichtigen mehrwertig Arten verändert. Siehe auch diesen Artikel Mehrwertige Datentypen schädlich in Betracht gezogen:
beide Suraj [Poozhiyil, die MS Access Programm-Manager] und ich stimmen von ganzem Herzen, dass die Entwickler nicht müssen mehrwertig Felder verwenden. Leute, die Datenbanken zu verstehen haben bereits eine gute Möglichkeit, Umsetzung viele zu viele Beziehungen und wird keinen Nutzen gewinnen von mehrwertig Felder aus.
Also, meine klare und sichere Beratung Entwickler ist nicht mehrwertig zu verwenden Felder. Sie haben uns nichts mehr zu bieten ausnehmen mögliche Schmerzen.
UPDATE:
MULTISET ist ein neuer Datentyp offiziell beginnend mit SQL: 2003 also bin ich Teil des Grundes rät zum Hinzufügen es in Access 2007 vollständig sein konform mit dem SQL-Standard
Das ist, fast amüsant. Das Access-Team hat kein Interesse gezeigt SQL-Syntax in hinzufügen, die mit einem beliebigen SQL-Standards kompatibel ist.
[Wenn das SQL Server-Team Jet Modifizierung wurde für ihre 4.0-Release wollten sie SQL-92-Kompatibilität erreichen, wurden aber daran durch das Windows-Team, deren Komponenten waren angewiesen auf einigen Funktionen verbleibenden nicht konforme verhindert ... aber das ist eine andere Geschichte. Das Access-Team hat eine eigenes Volk der Code-Basis, so dass sie keine solche Ausrede hat ... es sei denn, das Sharepoint Team nun ungebührlichen Einfluss hat? Ich schweife ab ...]
Betrachten Sie dieses Zitat aus dem Dokument über den SQL2003 Standard:
Werte eines
MULTISET
Typ kann sein entweder durch das Aufzählen Einzelelemente oder durch Zufuhr von die Elemente durch eine Abfrage Ausdruck; z. B.
MULTISET[1, 2, 3, 4]
oder
MULTISET(
SELECT grades
FROM courses
)
... Umgekehrt kann ein multiset Wert sein als Tabellenverweis in der
FROM
verwendet Klausel mit demUNNEST
Operator.
Das Access-Team hat keine neue Ausdrücke noch keine Operatoren die ACE SQL DML Syntax hinzugefügt. Also, nein, das hat nichts mit SQL-Standards und alles zu tun, mit Sharepoint zu tun.
David W. Fenton: Nein, [Unterstützung für mehrwertiges types] in der hinzugefügt wurde ACCDB-Format (nicht der ACE, wie @onedaywhen sagt ...)
Betrachten Sie dieses Zitat von des eigenen Blog Zugang Team :
Die primäre Funktion, die wir in den neuen hinzugefügt Access-Modul ist die Unterstützung für „complex Daten“.
Es ist auf jeden Fall ein Motor Feature!