2017-12-24 23 views
0

pkfield로 연결된 두 개의 연결된 테이블에서 정보를 가져와야합니다. 내가해야 할 일의 기본 레이아웃은 다음과 같습니다SQL Server 2012 Management Studio : 선택, 내보내기, 추가

테이블 A에서 표 B에서

Name, Year Active where active is true 
ID is the PK 

: 나는 .CSV 파일에 그 모두를 내보낼

ID and Type where Table A.Active is true 
ID is the link back to Table A (obviously) 

, 연도를 변경 한 다음 해당 레코드를 새 레코드로 해당 테이블에 다시 추가하십시오.

이 작업을 수행하는 방법에 대한 의견이 있으십니까? 어쩌면 두 개의 별도의 쿼리로? 나는 표 A의 ID 필드가 자동으로 생성된다고 생각한다.

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 추가 테이블 구조에서 나는 다음을 발견했습니다 : 표 A 열 : MagID (PK), MagCode, Year, Name, Parcel, Active. 표 B 열 : TypeID (PK), MagID (표 A의 FK), TypeCode 및 LastID. 일반적으로 데이터는 MagCode (표 A), TypeCode, Year (표 A) 및 LastID가있는 양식을 통해 표 B에 입력됩니다. 따라서 각 MagID/Year 조합에는 TypeCode 및 LastID에 대한 두 개의 항목이 있습니다. 예 : MagID Fred, TypeCode XR, 2018 년, LastID 2008; MagID Fred, TypeCode LR, Year 2018, LastID 492. 추가 될 때 자동으로 올바르게 연결됩니까? – MacLeod400

답변

0

쿼리 CSV로 데이터를 내보낼 수 있습니다 : 당신은 올해를 변경 한 후 CSV의 각 행에 대한 쿼리 아래에 쓸 수

select Name,Year,Active,Type 
From tableA A JOIN tableB B on A.ID=B.ID 
Where A.Active=1 

.

insert into tableA(Name,Year,Active) values(csvcol_Name,csvcol_Year,1) 
insert into tableB(ID,Type) values(@@Identity,csvcol_Type) 
0

실제로 가져 오기/내보내기 마법사를 사용할 수 있습니다. 필자는 64 비트 시스템을 사용하기 때문에 64 비트를 사용해야했습니다. 또한 필요에 따라 정보를 수정하고 표에 붙여 넣을 수 있습니다. 지금까지는 코드가 필요 없습니다.

업데이트 : 이것은 부분적으로 만 사실입니다. 어떤 문제없이 테이블 B에 올바른 정보를 얻을 수는 있지만 테이블 A에 올바른 링크를 다시 설정하는 방법은 수동으로 해당 링크를 설정하는 양식에 정보를 입력하지 않아도됩니다. 약 550 개의 레코드가 두 번 입력됩니다. 필요에 따라 중앙 집중식 데이터베이스가 아닙니다. 한 컴퓨터에서는 스위치가 꺼지고 다른 스위치에서는 스위치가 꺼집니다. 그들은 결합 될 수 없다. 그래서 ... 피하는 법 ... 아니면 두 대의 기계 사이에 1100 개의 레코드를 입력해야합니까? SQL Management Studio 내에서 링크를 설정할 수 있습니까?