2012-12-27 21 views
6

Eventuali duplicati:
DEFAULT clause in ALTER TABLE statement resulting in syntax errorSQL SET DEFAULT non funziona in MS Access

sto provando ad eseguire la seguente istruzione utilizzando una query SQL all'interno di MS Access;

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

Tuttavia, ottengo una finestra che visualizza l'errore Syntax error in ALTER TABLE statement.

E quando si fa clic su OK si evidenzia la parola DEFAULT. Ho anche provato la seguente dichiarazione;

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

E ho un altro errore Syntax error in CONSTRAINT clause.

Qual è la sintassi corretta per l'impostazione di un valore predefinito in MS Access? Il file db è in formato Access 2003.

+1

La seconda è SQL standard, ma non credo che è supportato in Access. Vedi ['ALTER TABLE'] (http://msdn.microsoft.com/en-us/library/office/bb177883 (v = office.12) .aspx) –

+0

http://stackoverflow.com/questions/10440990/ default-clausola-in-alter-tavolo-dichiarazione-conseguente-in-sintassi errori. Non può essere fatto usando SQL. Ho votato per chiudere questa domanda. – shahkalpesh

+0

Quella domanda precedente riguardava un Access 97 db. E poiché gran parte della funzionalità Access DDL (incluso 'DEFAULT') non è stata introdotta fino a Jet 4 (Access 2000), la domanda precedente si applica qui solo se Steztric utilizza anche il formato Access 97 come file db. – HansUp

risposta

5

Il supporto per DEFAULT è stato incluso in Access DDL con Jet 4 (Access 2000). Tuttavia può essere utilizzato solo in DDL eseguito da una connessione ADO.

questo ha lavorato con Access 2007.

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

Nota se il file db è Access 97 o precedente, non sarà in grado di impostare un valore di campo DEFAULT dal DDL.

+0

Grazie @HansUp, questo è quello che stavo cercando. In realtà, il motivo per cui eseguo SQL da Access è come un'area di sandpit per garantire che stavo scrivendo la query ODB corretta per farlo nel codice. – Steztric

+0

Sì, capito. Grazie per la condivisione! – Steztric

+0

Prego. Non sono sicuro che ALTER TABLE funzioni da una connessione ODBC.In caso contrario, utilizzare una connessione OleDb perché funzionerà quindi. – HansUp

0

Sembra che ci sarebbe il problema Constraint con la colonna. Sebbene seguire la dichiarazione DDL sia la maniera corretta.

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES' 

Reference

+0

Questo non funziona. – htm11h

Problemi correlati