developer tip

ID 열이있는 가져 오기 및 내보내기 마법사

optionbox 2020. 11. 27. 08:02
반응형

ID 열이있는 가져 오기 및 내보내기 마법사


이전 DB의 ID 열 값을 유지하면서 한 DB에서 다른 DB로 데이터를 이동하고 싶습니다. 마법사를 실행할 때 "읽기 전용 열"ChannelID "에 삽입하는 데 실패했습니다."라는 유효성 검사 오류가 발생합니다.

여기서 ChannelID는 해당 테이블의 ID 열입니다. 데이터를 가져 오기 위해 ID 기능을 어떻게 재정의 할 수 있습니까?


ID 삽입을 활성화해야합니다. 매핑 편집을 클릭하면 확인란이 있습니다.


Byte56의 대답이 맞습니다. 매핑 편집 화면에서 "ID 삽입 활성화"를 선택하십시오. "소스 테이블 및 뷰 선택"목록이 다중 선택을 지원하므로 Shift 또는 Ctrl 키를 누른 상태에서 목록에서 여러 테이블을 선택할 수 있다는 점을 지적하고 싶었습니다.


에서 편집 열 매핑 , 틱 IDENTITY INSERT 수 있습니다. 그런 다음 EDIT SQL 버튼을 클릭 합니다.

변화

[MyID] int NOT NULL,

으로

[MyID] int IDENTITY(1,1),

MS Access 데이터베이스 가져 오기에서 작동합니다. 이렇게하면 ID 열로 변환되는 일련 번호 필드의 데이터가 보존됩니다.


SET IDENTITY INSERT ONIDENTITY 열에 값 삽입을 허용 하려면 사용해야 합니다.

다음은 MSDN에 대한 링크입니다.


SSMS 2008 R2를 사용하는 SQL Server 2008 R2.

"매핑 편집"에서 ID를 활성화하는 것만으로는 identity = true가 유지되지 않습니다. 각 테이블의 SQL을 수동으로 편집하고 SQL 코드에 IDENTITY 속성을 포함해야합니다.

예 : ADD MS_IDENT numeric (18,0) IDENTITY NOT NULL,


방금 SQL Server Management Studio 2017로 업그레이드했습니다. 매핑 편집 대화 상자에서 "ID 사용"확인란을 선택했지만 작동하지 않았습니다. 기존 테이블을 업데이트 할 때 마법사를 사용하여 SQL을 편집 할 수 없습니다. 대신 하드 드라이브에 패키지로 저장할 수있었습니다. 그런 다음 메모장에서 파일을 편집하여 "identity"를 검색했습니다. 물론 속성이 true로 설정되어 파일 자체의 주석에 따라 ID 열의 값이 소스에서 복사됨을 의미합니다. false로 변경하면 대상에서 값이 자동으로 생성됩니다. 도움이 되었기를 바랍니다.


나는 이것에 대한 해결책을 찾기 위해 시간을 보냈다.

300 개 이상의 테이블이있는 액세스 데이터베이스가 있고 SSMS2017 가져 오기 도구를 사용하여 각 테이블의 구성을 수동으로 편집하지 않고는 기본 키와 자동 번호를 유지할 수 없었습니다 .... 좋지 않습니다 ..

결국 저는 bullzip으로 만든 도구 (MS Access to MSSQL)를 사용하여 액세스에서 mssql로 변환 할 수 있습니다 (MySQL에 액세스 할 수있는 도구도 있음).

이 도구는 작업을 수행하고 작은 테이블이있는 경우 스크립트를 시들게하거나 서버에 직접 연결합니다.

모든 ID는 손상되지 않았으며 일련 번호도 거기에 있습니다.

완료되었습니다.

참고 URL : https://stackoverflow.com/questions/5893575/import-and-export-wizard-with-identity-column

반응형