여러 테이블이있는 Access 데이터베이스 (Access 2003)가 있고 SQL Server 2005로 데이터를 가져와야합니다. Access 데이터는 SQL Server와 동일한 구조로되어 있지 않습니다. 그래서 나는 SQL Server에 필요한 형식으로 변환하는 다양한 쿼리를 만들었습니다. 기본적으로 SQL 서버의 각 테이블에 대해 나는이 개 질문이 다음 차례는, fieldNames 및 SQL 테이블과 호환 유형을 생성하는 선택 쿼리, 기본적으로 기본 키 자동 증가 (Autoinc)를Access 데이터베이스에서 Access 쿼리를 통해 SQL Server로 가져올 때의 문제
Insert into [Sql_table] (field1, field2, ...)
Select [field1, field2, ...] from [Access_table]
는 SQL 모두를 수행하고 원래의 액세스 테이블이 추가 쿼리 , 그리고 그것을 쿼리에 포함시킵니다.
내가 삽입 쿼리 및 소스 선택 쿼리를 실행
(최대 수백에) 모두 원래의 정체성그러나 때 소스 쿼리가 함께 레코드가 확인 삽입, 확인 작동하지 매우 많은 기록이 이상의 레코드 (나는 10000 레코드 몇 테이블을 가지고), 난 두 가지 상황이 있습니다
중 하나를 액세스 쿼리로 인해 기본 키 위반으로 SQL 서버에 모든 레코드를 추가 할 수 없습니다 (하지만 위반이 전혀 없다보고). 이 경우 단순히 액세스를 닫고 다시 시작하면 ... 두 번째 상황이 발생합니다.
쿼리를 실행하면 Access에서 x 레코드를 가져올 수 없음을 알 수 있습니다 (대개 소수, 10, 21, 32) 10000+에서 10000까지)를 가져올 수 있지만 나머지는 가져옵니다. 어쨌든 키 위반은 없습니다. 모든 ID는 고유하며 Autoinc 필드로 원래 Access 테이블에 생성됩니다. 내가 다시 SQL 데이터 및 실행 쿼리를 삭제하면 이상한 것은 내가하지, 때로는 더, 때로는 몇 수입 기록의 서로 다른 번호를,하지만 10000
중 10 ~ 50의 범위에있는 모든 시도 I Access 2007에서도 마찬가지지만 동일한 일이 발생합니다.
SQL 서버 테이블은 마스터 테이블과 외래 키 관계가 있지만 가져 오기를 시도하는 데이터에서도이 관계가 충족됩니다.
누구든지이 문제에 직면하고 해결책을 알고 있습니까?
감사
PS : SQL 서버를 통해 액세스 데이터를 변환하기 위해 많은 일을 방법이있을 것이기 때문에 내가 SQL 서버 가져 오기 마법사를 사용하지 않는 - 선택 쿼리가 이미 만들어진 액세스를가 매우 복잡하고, 사용 VBA로 작성된 일부 함수 (이 유일한 목적으로 tsql로 다시 작성하기가 어려움)
덕분에 일을 한 방법입니다,하지만 그들을 다시하고 모두가 소비하는 시간을 가져옵니다을 세척이에 관련된 여러 테이블이 있기 때문에, 복잡하고 도착 – bzamfir