2014-06-16 27 views
6

Jak zmienić tabelę w MS Access za pomocą SQL, aby zmienić typ danych na AutoNumber?Dostęp do SQL - ZMIENIĆ KOLUMN na AutoNumber?

Próbowałem następujących bez powodzenia

ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY counter 
); 
ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY AUTONUMBER 
); 
ALTER TABLE PERSON ALTER COLUMN PERSON_ID Integer PRIMARY KEY AUTOINCREMENT 
); 

każdym razem uzyskać ten sam problem „błąd składni” i podkreśla ostatnie słowo w SQL.

Odpowiedz

8

Dla zapytania Definicja danych (DDL) w programie Access, należy użyć pola COUNTER, aby zdefiniować pole Autonumerowanie. Próbowałeś użyć obu Integer i counter na tym samym polu, a to nie zadziała.

Właśnie próbowałem i pracował dla mnie w programie Access 2010:

ALTER TABLE PERSON ALTER COLUMN PERSON_ID COUNTER PRIMARY KEY 

Uwaga, że ​​aby tego oświadczenia do pracy

  • stół musi być pusty, a
  • tabela nie może już zawierać klucza głównego, nawet w polu [PERSON_ID].

Jeśli tabela zawiera już wiersze, program Access nie pozwoli przekonwertować pola Numeric (Long Integer) na AutoNumber. W takim przypadku należy utworzyć nową tabelę z kluczem podstawowym AutoNumber, a następnie wstawić wiersze ze starej tabeli do nowej tabeli.

Na przykład dla istniejącej tabeli o nazwie [osoby] z kolumnami

PERSON_ID INTEGER
PERSON_NAME TEXT (50)

trzeba utworzyć nową tabelę

CREATE TABLE PERSON_NEW (PERSON_ID COUNTER PRIMARY KEY, PERSON_NAME TEXT(50)) 

a następnie skopiuj rekordy ponad

INSERT INTO PERSON_NEW 
SELECT * FROM PERSON 
+0

niestety tabela ma już w sobie dane. Czy jest jakiś sposób, żeby to działało, jeśli są dane? Tworzę tę tabelę na podstawie innej tabeli o tej samej nazwie, polach i wszystkich danych w istniejącej tabeli (w przypadku projektu szkolnego) Person_ID jest również FK w innej tabeli, dlatego chcę zachować te same dane. – WillNZ

+1

@WillNZ Zaktualizowałem moją odpowiedź. –

+0

Pozdrawiam kumpla. Napij się piwa :) – WillNZ

Powiązane problemy