2010-01-06 2 views
5

하나의 열만 있지만 수천 개의 행이있는 거대한 테이블의 파일로 데이터를 내보내려는 경우 행의 순서가 중요합니다. 아래 bcp 명령을 사용하고 있습니다.
bcp DBNAME.dbo.tblName out mydata.dat -Uusername -Ppassword -c
10 개의 행을 가진 테이블을 검사했는데 행 순서는 데이터 파일에서 유지됩니다. 하지만 행 수가 10000 개 이상이라면 bcp가 주문을 유지한다고 가정 할 수 있습니까?데이터 파일로 내보내는 동안 bcp out이 행 순서를 유지합니까?

에서는 다음과 같은 예를

http://www.sqlteam.com/article/exporting-data-programatically-with-bcp-and-xp_cmdshell

:

SET @bcpCommand = 'bcp "SELECT * FROM pubs..authors 
    ORDER BY au_lname" queryout "' 

답변

6

이 나는 ​​것 같아요 ORDER BY 절을 사용하지 않는 한 SQL SELECT (또는 bcp)는 특정 순서 또는 동일한 순서로 값을 리턴합니다.

일반적으로 값은 테이블의 인덱스를 기준으로 순서대로 반환됩니다.

그러나 인덱스 순서로 값이 반환되지 않는 경우가 있습니다. 디스크의 행이 인덱스의 첫 번째 행 인 경우에도 디스크의 행 앞에 캐시의 행이 리턴 될 수 있습니다.

1

당신은 가정해서는 안 당신이 당신의 BCP 명령 (ORDER BY으로) SQL 문을 사용하는 경우

관련 문제