2012-12-27 9 views
6

Mögliche Duplizieren:
DEFAULT clause in ALTER TABLE statement resulting in syntax errorSQL SET DEFAULT funktioniert nicht in MS Access

Ich versuche, die folgende Anweisung unter Verwendung einer SQL-Abfrage in MS Access auszuführen;

ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT 'default value' 

Allerdings bekomme ich einen Dialog Anzeige der Fehler Syntax error in ALTER TABLE statement.

Und wenn ich auf OK klicken hebt es das Wort DEFAULT. Ich habe auch die folgende Aussage versucht;

ALTER TABLE [table] 
ADD CONSTRAINT [Default] DEFAULT 'default value' FOR [column] 

Und ich bekomme einen anderen Fehler Syntax error in CONSTRAINT clause.

Was ist die korrekte Syntax, um einen Standardwert in MS Access zur Einstellung? Die DB-Datei ist Access 2003-Format.

+1

Das zweite ist Standard-SQL, aber ich glaube nicht, dass es in Access unterstützt wird. Siehe ['ALTER TABLE'] (http://msdn.microsoft.com/en-us/library/office/bb177883 (v = office.12) .aspx) –

+0

http://stackoverflow.com/questions/10440990/ default-Klausel-in-alter-Tabelle-Anweisung-resulting-in-Syntax-Fehler. Es kann nicht mit SQL durchgeführt werden. Ich habe dafür gestimmt, diese Frage zu beenden. – shahkalpesh

+0

Diese vorherige Frage bezog sich auf eine Access 97 db. Und da ein Großteil der Access DDL-Fähigkeit (einschließlich 'DEFAULT') erst mit Jet 4 (Access 2000) eingeführt wurde, gilt die vorherige Frage nur dann, wenn Steztric auch das Access 97-Format als seine db-Datei verwendet. – HansUp

Antwort

5

Unterstützung für DEFAULT wurde in Access DDL mit Jet 4 (Access 2000) enthalten. Es kann jedoch nur in DDL verwendet werden, die von einer ADO-Verbindung ausgeführt werden.

Das mit Access arbeitete 2007.

CurrentProject.Connection.Execute "ALTER TABLE MyTable " & _ 
    "ALTER COLUMN field2 SET DEFAULT ""foo"";" 

Hinweis, wenn Ihre db-Datei Access 97 oder früher ist, werden Sie nicht in der Lage sein, ein Feld DEFAULT Wert von DDL zu setzen.

+0

Vielen Dank @HansUp, das ist, was ich gesucht habe. Tatsächlich ist der Grund, warum ich SQL aus Access heraus ausführe, ein Sandpit-Bereich, um sicherzustellen, dass ich die richtige ODB-Abfrage schreibe, um dies im Code zu tun. – Steztric

+0

Ja, verstanden. Danke für das Teilen! – Steztric

+0

Gern geschehen. Ich bin nicht sicher, ob ALTER TABLE von einer ODBC-Verbindung funktioniert.Wenn dies nicht der Fall ist, verwenden Sie stattdessen eine OleDb-Verbindung, da dies dann funktioniert. – HansUp

0

Es scheint, es würde Constraint Problem mit Ihrer Spalte geben. Obwohl das Folgen der DDL-Anweisung der richtige Weg ist.

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES' 

Reference

+0

Das funktioniert nicht. – htm11h