2009-04-27 4 views

Antwort

3

Das Wort ADD ist ein Schlüsselwort. Versuchen Sie folgendes:

CREATE TABLE HELLO 
( 
    MUN INTEGER NOT NULL, 
    [ADD] CHAR(50) DEFAULT '16 asd ST.' 
) 
+0

Ihr SQL ist korrekt, muss jedoch im ANSI-92-Abfragemodus ausgeführt werden. Die SQL-DDL-Syntax des Standard-ANSI-89-Abfragemodus unterstützt nicht das Schlüsselwort DEFAULT (auch nicht CHAR). – onedaywhen

+0

Und der Grund dafür ist, dass die viel reichere DAO-Interface-Schicht von MS für solche Dinge gedacht war. Die DDL-Unterstützung von Jet war schon immer eine schlechte Beziehung zur Schnittstelle auf höherer Ebene. –

+0

Für die Erstellung/Änderung von ACE/Jet-Tabellen ist DDL reicher als DAO. Nehmen Sie das obige Beispiel: Die Spalte CHAR (50) ist ein Datentyp mit fester Breite. Die DAO-Schnittstellenschicht wurde für diesen Datentyp nicht erweitert, während SQL DDL war. DAO kann nicht einmal eine CHAR (50) -Spalte über SQL DDL erstellen! Es gibt viele andere Jet 4.0-Funktionen, die in DAO fehlen: WITH COMPRESSION, CHECK-Einschränkungen, schnelle Fremdschlüssel usw. Ich denke, wir wissen beide, dass in der Jet 4.0-Ära eher ADO und SQL DLL für MS gedacht waren so etwas ". Warum sonst würden sie DAO nicht entsprechend aufwerten? Vergesslichkeit ?! – onedaywhen

3

Die DEFAULT und CHAR Schlüsselwörter werden nur unterstützt, wenn in der ACE/Jet-Engine ANSI-92-Abfragemodus (und auch dann nur in SQL DDL). Wie Jose Basilio darauf hinweist, ist ADD ein reserviertes Wort und muss mit eckigen Klammern versehen werden. Außerdem benötigen Sie ein Leerzeichen zwischen dem DEFAULT Wort und seiner Klausel (wie Jose gezeigt hat).

Wenn Sie das SQL in einem Query-Objekt in der MS Access-Schnittstelle ausführen, müssen Sie vom Standardmodus (ANSI-89 Query Mode) zum ANSI-92 Query Mode wechseln. Siehe: About ANSI SQL query mode.

Wenn Sie die Tabelle programmgesteuert erstellen, z. Verwenden Sie DAO, dann versuchen Sie es mit einem CurrentProject.Connection.Execute "Sql geht hier", wobei CurrentProject.Connection eine ADO-classic oder andere OLE DB-Verbindung zu Ihrer Datenquelle ist.

P.S. Du wolltest sicher, dass du die Spalte HELLO.Mum hast :)

+0

Wenn Sie DAO verwenden, können Sie DAO einfach verwenden, um Ihre Tabelle zu ändern, anstatt mit dem Wechsel zu ADO herumzuspulen, nur damit Sie DDL ausführen können. –

+0

Frage war "using SQL ..." (unter Verwendung von DAO verwendet nicht SQL, IMO) "... in MS Access", was ich unter "Verwenden der MS Access-Benutzerschnittstelle" verstanden habe, z. Die SQL-Ansicht eines Abfrageobjekts. Ich stimme zu, dass es keine Notwendigkeit gibt, die Technologie/Methodik zu wechseln, um ein DEFAULT zu erstellen, jedoch kann man mit DAO überhaupt keine CHAR (50) -Spalte erstellen. – onedaywhen

Verwandte Themen