2012-12-27 16 views
6

Powiel możliwe:
DEFAULT clause in ALTER TABLE statement resulting in syntax errorSQL SET DEFAULT nie działa w MS Access

Próbuję wykonać następujące oświadczenie za pomocą zapytania SQL w MS Access;

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

Jednak dostaję dialogowe z komunikatem błędu Syntax error in ALTER TABLE statement.

A gdy kliknę OK to podkreśla słowo DEFAULT. Próbowałem również następujące oświadczenie;

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

i dostaję kolejny błąd Syntax error in CONSTRAINT clause.

Jaka jest poprawna składnia do ustawiania wartości domyślnej w MS Access? Plik db to format Access 2003.

+1

Drugi jest standardem SQL, ale nie wierzę, że jest on obsługiwany w programie Access. Zobacz ['ALTER TABLE'] (http://msdn.microsoft.com/en-us/library/office/bb177883 (v = office.12) .aspx) –

+0

http://stackoverflow.com/questions/10440990/ default-clause-in-alter-table-statement-result-in-syntax-error. Nie można tego zrobić przy użyciu SQL. Głosowałem, aby zamknąć to pytanie. – shahkalpesh

+0

To poprzednie pytanie dotyczyło bazy danych Access 97 db. A ponieważ większość funkcji Access DDL (w tym 'DEFAULT') nie została wprowadzona przed Jet 4 (Access 2000), poprzednie pytanie dotyczy tylko tego, jeśli Steztric używa również formatu Access 97 jako swojego pliku db. – HansUp

Odpowiedz

5

Obsługa DEFAULT została uwzględniona w programie Access DDL przy użyciu aparatu Jet 4 (Access 2000). Jednak można go używać tylko w DDL wykonywanych z połączenia ADO.

ten pracował z dostępem 2007.

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

Uwaga Jeśli plik db jest Access 97 lub wcześniej, nie będzie mógł ustawić wartość pola DEFAULT z DDL.

+0

Dziękuję @HansUp, tego właśnie szukałem. W rzeczywistości powód, dla którego wykonuję SQL z poziomu Access, jest obszarem piaskownicy, aby upewnić się, że piszę odpowiednie zapytanie ODB, aby zrobić to w kodzie. – Steztric

+0

Tak, rozumiem. Dzięki za udostępnienie! – Steztric

+0

Nie ma za co. Nie jestem pewien, czy ALTER TABLE będzie działał z połączenia ODBC.Jeśli nie, użyj połączenia OleDb, ponieważ wtedy zadziała. – HansUp

0

Wygląda na to, że z twoją kolumną wystąpi błąd Constraint. Chociaż prawidłowe jest zastosowanie następującej instrukcji DDL.

ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES' 

Reference

+0

To nie działa. – htm11h