빈 테이블에 519 행의 스프레드 시트에서 데이터를 가져온 경우 왜 자동 번호 키가 56,557,618에서 시작 되었습니까? 얼마나 큰데? 필자는 프로젝트에서 시작하지 않았고 스프레드 시트를 상당히 정기적으로 버릴 것으로 예상했기 때문에 기본 키 필드의 숫자가 부족한 상태로 끝나기를 원하지 않습니다.MS Access에서 일련 번호 가져 오기
답변
Access는 빈 테이블에서도 마지막으로 지정한 ID를 기억합니다. 당신이 소형에있는 일련 번호를 재설정하려면/
는 또한 일련 Access에서 당신은 압축 및 복구를 사용하지 않고 일련 번호를 재설정 할 수 있습니다 2,147,483,647
까지 갈 수있는 긴 정수 테이블을 비우는 후 데이터베이스를 복구 :
CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"
SQL을 실행하기 전에 테이블이 비어 있는지 확인해야합니다. 그렇지 않으면 Access에서 중복 자동 노드를 만들려고합니다.
VBA에서 실행해야합니까? 나는 ALTER TABLE이 SQL 명령이라고 생각했지만 그것은 나를 위해 돌아 가지 않을 것이다. – NickSentowski
위와 같이 작성되었으므로 VBA에서 실행되지만 ALTER TABLE tblTable ALTER COLUMN ID COUNTER (1,1)를 쿼리 디자인 창의 SQL 뷰에 붙여 넣으면 실행됩니다. 1, 100,1에서 다시 시작하기를 원하지 않는 한 Counter (1,1)를 사용할 필요가 없습니다. – Fionnuala
자동 번호 열을 포함하는 추가 쿼리를 만들어 자동 번호를 다시 설정할 수도 있습니다. 일단 행이 추가되면 숫자는 추가 된 값 + 1로 설정됩니다.
이렇게하면 값이 가장 높은 현재 값보다 작지 않도록주의해야합니다.
예 :
INSERT INTO tblName (id)
SELECT [tblName]![id]+1 AS [New Value]
FROM tblName
GROUP BY [tblName]![id]+1, tblName.id
HAVING (((tblName.id)=(Select max(id) from tblName)));
자동 번호를 마지막 번호의 + 2로 재설정합니다. 참고로, 필수 열을 포함하고 나중에 새 행을 삭제해야합니다.
빈 테이블이 있습니까? 이 스프레드 시트 덤프는 테이블이 처음 기록 된 때였습니다. – NickSentowski
매번 테이블을 떨어 뜨리면됩니다. 아니면 테이블을 재사용하고 있습니까? –
처음으로 테이블을 사용했을 때 제 열쇠는 56 밀이었습니다. 그 결과, 나는 테이블을 죽이고, 다시 만들고, 다시 버리고, 비슷한 결과를 얻었습니다. 압축하고 복구 할 때 "삭제 된"키가 다시 나타 납니까? – NickSentowski