2014-03-19 2 views
1

파일 내에있는 순서를 유지해야하는 플랫 파일을 BCP로 변환하려고합니다. 예를 들어, 플랫 파일의 1 행은 테이블의 1 행에 있어야합니다.BCP는 플랫 파일과 동일한 순서로 레코드를 가져올 수 있습니까?

나는 그 순서를 알고있는대로 삽입 할 때 ID를 할당합니다. 내가 플랫 파일과 동일한 순서를 따라야합니다 ASC 또는 DESC에 삽입하지 않으 http://msdn.microsoft.com/en-us/library/ms162802(v=sql.105).aspx

-h"ORDER(column[ASC | DESC] [,...n])" 

:하지만, 내 연구에서 순서는 링크에 따라 ASC 또는 DESC입니다. 이것이 가능한가?

+0

나는 어떤 종류의 순서도 생략해도 파일에서 변경하지 않고 가져올 수 있다고 생각하지만 잘못된 것일 수 있습니다. –

답변

0

bcp는 플랫 파일과 완전히 동일한 순서로 db 테이블에 데이터를 추가해야합니다. 따라서 bcp 문에서 -h 매개 변수를 생략 할 수 있습니다.

0

BCP 유틸리티는 파일의 데이터 순서를 지정하는로드 힌트없이 (테이블의 클러스터 된 인덱스가 필요함) BCP 유틸리티가 가정합니다. 로 가져 오기), 데이터는 파일에서 정렬되지 않습니다.

따라서 BCP가 데이터를 순서대로로드한다고 가정해서는 안됩니다. 이는 스토리지 엔진의 요구가 데이터 읽기 및 저장에 어떻게 영향을 줄 수 있는지에 크게 기인합니다. 매우 큰 파일 (VL은 시스템의 리소스에 따라 달라질 수 있음)의 경우 스토리지 엔진은 한 번에 두 개 이상의 페이지에 데이터를 쓸 수 있습니다 (또는 이와 같은 내용 ... 내부에 대한 확신이 없습니다 ... 그러나 가정해서는 안됩니다).

SQL에서 "SQL"이 동일한 순서를 유지하고 동일한 순서를 유지한다는 언급이 동일한 순서를 결코 가정하지 않는다고 말하는 MS의 진술이 없다면 ... 나는 말할 것이다.

파일 크기가 작을수록 나는 당신이이 가정에서 벗어날 수 있다고 생각합니다.

+0

설명서 링크가 누락 된 것 같습니다. – Dejan